首页 / JAVA / java – 记录未显示
java – 记录未显示
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 记录未显示,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2707字,纯文字阅读大概需要4分钟。
内容图文
![java – 记录未显示](/upload/InfoBanner/zyjiaocheng/714/8a5e406363734b028cd11cb65fbae16e.jpg)
我在我的应用程序中使用JUL.通常,Netbeans会打开一个输出选项卡,其中显示“Tomcat”并显示我生成的日志.它工作正常.但突然之间,我意识到我的日志根本没有显示,只有System.out被打印出来.甚至没有最高的LOG.log(Level.SEVERE,“…..
} catch(Exception e) {
System.out.println("This gets printed in Netbeans tab");
LOG.log(Level.SEVERE, "This doesnt");
}
我怀疑它可能是我包含的库,这会弄乱我的日志.这有可能吗? librray可以改变我的日志显示方式吗?我怎么能调查这个,因为我有点迷失?
解决方法:
I suspect it can be a library I included, which is messing with my logs. Is that possible at all?
是. JUL to SLF4J Bridge可以从JUL根记录器中删除控制台处理程序.一些库调用LogManager.reset,它可以删除和关闭所有处理程序.
Can a library change the way my logs are shown?
是.安装日志桥后,JUL记录不再由JUL格式化程序格式化.
How can I investigate this, since I am a bit lost?
修改记录器树需要权限,因此您可以安装具有所有权限的SecurityManager,然后使用-Djava.security.debug=”access,stack”打开调试跟踪以确定正在修改记录器树的调用者.
如果这不起作用,您可以使用good ole’System.out在加载库之前和之后打印记录器树和附加的处理程序.然后开始添加删除库,直到您看到记录器更改为止.
import java.io.PrintStream;
import java.util.Enumeration;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.Logger;
public class DebugLogging {
private static final Logger log = Logger.getLogger("test");
public static void main(String[] a) {
log.log(Level.FINEST, "Finest");
log.log(Level.FINER, "FINER");
log.log(Level.FINE, "FINE");
log.log(Level.CONFIG, "CONFIG");
log.log(Level.INFO, "INFO");
log.log(Level.WARNING, "WARNING");
log.log(Level.SEVERE, "SEVERE");
log.finest("Finest Log");
log.finer("Finer Log");
log.fine("Fine Log");
log.config("Config Log");
log.info("Info Log");
log.warning("Warning Log");
log.severe("Severe Log");
printConfig(System.err);
}
private static void printConfig(PrintStream ps) {
LogManager lm = LogManager.getLogManager();
ps.append("LogManager=").println(lm.getClass().getName());
synchronized (lm) {
Enumeration<String> e = lm.getLoggerNames();
while (e.hasMoreElements()) {
Logger l = lm.getLogger(e.nextElement());
if (l != null) {
print(l, ps);
}
}
}
}
private static void print(Logger l, PrintStream ps) {
String scn = l.getClass().getSimpleName();
ps.append("scn=").append(scn).append(", n=").append(l.getName())
.append(", uph=").append(String.valueOf(l.getUseParentHandlers()))
.append(", l=").append(String.valueOf(l.getLevel()))
.append(", fl=").println(l.getFilter());
for (Handler h : l.getHandlers()) {
ps.append("\t").append(l.getName()).append("->")
.append(h.getClass().getName()).append(", h=")
.append(String.valueOf(h.getLevel())).append(", fl=")
.append(String.valueOf(h.getFilter())).println();
}
}
}
内容总结
以上是互联网集市为您收集整理的java – 记录未显示全部内容,希望文章能够帮你解决java – 记录未显示所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。