我在应用程序中使用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");
}
我怀疑这可能是我包含的图书馆,这使我的日志混乱了。那有可能吗?图书馆可以改变我的日志显示方式吗?由于我有点迷路,我该如何调查?
我怀疑这可能是我包含的图书馆,这使我的日志混乱了。那有可能吗?
是。从JUL到SLF4J的桥可以从JUL根记录器中删除控制台处理程序。一些库调用LogManager.reset
可以删除和关闭所有处理程序。
图书馆可以更改我的日志显示方式吗?
是。一旦安装了日志桥,JUL记录器就不再格式化JUL记录。
由于我有点迷路,我该如何调查?
修改记录器树需要权限,因此您可以安装具有所有权限的SecurityManager,然后使用-Djava.security.debug
=“
access,stack”
打开调试跟踪以确定正在修改记录器树的调用者。
如果这样不起作用,则可以System.out
在加载库之前和之后使用ole’ 打印记录器树和附加的处理程序。然后开始添加删除库,直到看到记录器更改为止。
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();
}
}
}
我刚拿到一台新的索尼Xperia XA,在这台设备上发现了一个奇怪的问题。它没有显示任何详细的调试日志。我尝试了Android Studio中的每个设置,使用adb logcat检查Android Studio是否只是过滤它们。我甚至使用了不同的电缆。我没主意了,请帮帮我。
大家好,希望有人能帮助我,我正在尝试获得一个非常基本的zipkin实现,以掌握分布式跟踪。我正在使用Spring靴来做这件事,但似乎不能使它工作。当我尝试为我的服务查找跟踪时,zipkin UI中不会显示任何内容。 我有两个部署如下: 我想要登录的spring boot应用程序: 我得完整日志: 我部署的第二个应用程序是我的zipkin客户机/UI Pom.xml
问题内容: 我无法使LibGDX日志记录在Android Studio中工作。首先,我认为我的问题与之前的问题相同,但是请确保我的应用程序在调试时进行了更新。 选项按钮上的测试操作已执行,但我无法显示调试日志。 问题答案: 默认日志级别为。为了进行调用,您必须先调用一次(可能是Game构造函数的第一行,以便可以轻松更改它)。
我有Kubernetes设置和运行一个grpc服务在一个吊舱。我成功地击中了服务上的一个endpoint,其中有一个print()语句,但在日志文件中没有看到日志。我以前在Kubernetes中运行(cron)作业时见过这种情况,日志只在作业完成后才出现(而不是在作业运行时)。有没有一种方法可以让kubernetes立即写入日志文件?我可以放置任何设置(集群级或仅用于吊舱)?提前感谢您的任何帮助!
我正在学习ELK堆栈。因此,我编写了一个示例java代码,该代码在文件中产生一些日志行。我正在尝试查看日志行是否显示在 Kibana UI 中。因此,我将尽力解释我所做的事情。因此,首先我开始了 elasticsearch,然后是 logstash,然后是 kibana。 我的 logstash 配置文件看起来像这样: 日志文件中的日志如下所示: 在此之后,我创建了一个带有模式的索引模板。但是我没
我怀疑这可能是我包含的一个库,它正在扰乱我的日志。这有可能吗?librray可以改变我的日志显示方式吗?既然我有点迷路了,我该怎么调查呢?