我正在使用slf4j api进行记录的应用程序:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
...
private static final Logger LOG = LoggerFactory.getLogger(FreemarkerEmailPreviewGenerator.class);
...
LOG.error("Error generating email preview", e);
(上面的代码显示了正在使用的类和程序包,但是很标准。)
我们使用配置如下的logback:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[%d{HH:mm:ss.SSS}] [%thread] [%-5level %logger{26} - %msg]%n
</pattern>
</encoder>
</appender>
<root>
<level value="debug" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
我们的某些代码利用了使用java.util.logging记录的第三方库-
特别是freemarker。从下面的控制台日志条目中可以看到,logback和jul都正在记录到控制台,但是它们没有使用相同的配置(logback条目使用我们的模式,jul的没有)
[12:24:38.842] [pool-2-thread-19] [INFO u.o.n.r.l.s.e.t.TemplateLoaderFromService - Finding template workflow/mail/templates/common/workflow-macros.ftl]
[12:24:38.859] [pool-2-thread-19] [INFO u.o.n.r.l.s.e.t.TemplateLoaderFromService - Loaded template workflow/mail/templates/common/workflow-macros.ftl as /workflow/mail/templates/common/workflow-macros.ftl from RegistryMailTemplateService.]
11-Jan-2017 12:24:38 freemarker.log.JDK14LoggerFactory$JDK14Logger error
SEVERE:
Expression domainContact is undefined on line 9, column 74 in workflow/mail/templates/common/workflow-macros.ftl.
The problematic instruction:
----------
==> ${domainContact.name} [on line 9, column 72 in workflow/mail/templates/common/workflow-macros.ftl]
是否可以使jul日志使用logback配置,以便我们为整个应用程序提供一个一致的日志配置?
您的应用程序需要具有以下jar:
应用程序-> Freemarker-> java.util.logging-> SLF4J API: jul-to-slf4j.jar
应用程序-> SLF4J API: slf4j-api.jar
SLF4J API-> logback: logback-classic.jar和logback-core.jar
由于您的应用程序已包含slf4j-api.jar和logback-classic.jar,因此您可能只需添加jul-to-slf4j.jar
如果使用maven:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>1.7.22</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.8</version>
</dependency>
经典的logback将可传递地添加logback-core和slf4j-api
问题内容: 我有一个现有的应用程序,它针对log4j进行所有日志记录。我们使用了许多其他库,它们也使用log4j或对照Commons Logging进行日志记录,而这些日志最终在我们的环境中使用log4j记录。我们的依赖项之一甚至针对slf4j记录日志,它也可以正常工作,因为它最终也可以委托给log4j。 现在,我想为一些缓存需求将ehcache添加到此应用程序。先前版本的ehcache使用com
主要内容:修改日志管理器配置每个初学者都很熟悉在有问题的代码中使用 System.out.println 方法在控制台打印消息,来帮助观察程序运行的操作过程。如果你使用 System.out.println 方法,一旦发现问题的根源,就要将这些语句从代码中删去。如果接下来又出现了问题,就需要再插入几个调用 System.out.println 方法的语句,如此反复,增加了工作量。 日志用来记录程序的运行轨迹,方便查找关键信
问题内容: 我有一个测试的Kubernetes集群,我在AWS上创建了elasticsearch,其中包括用于日志管理的Kibana。 端点:https : //search-this-is-my-es- wuktx5la4txs7avvo6ypuuyri.ca-central-1.es.amazonaws.com 据我谷歌搜索,我必须从流利发送日志。然后,我尝试使用本文来实现DaemonSet
问题内容: 我对Web服务世界还很陌生,但是具有相关知识。 我需要实现将日志消息发送到Web服务而不是使用 Web Service附加程序 发送到文件的功能。 我是通过在 Google 上搜索该类别之一来阅读的,但我无法验证这一点。 问题答案: 当您扩展该类时,我假设您应该使用应重写的方法来初始化您的webservice类。我已经编写了DatabaseAppender和JmsAppender lo
我是docker和所有这些日志记录的新手,所以可能我犯了一个stuipd错误,所以提前感谢您的帮助。我让麋鹿通过Dockerfile行运行docker容器(6.2.2): 在一个单独的容器中,我通过folling Dockerfile行安装并运行Filebeat: 我的Filebeat配置是: 正如你所看到的,我试图在elasticsearch中创建一个自定义索引,但现在我只是想先让默认索引正常工
问题内容: 我有一个愚蠢的Java日志记录问题:我正在从我的应用程序配置文件中加载日志记录配置- 但在读取文件后,它只是不记录任何内容(这看起来很像您在网上可以找到的示例,除了其他应用程序配置- 删除此设置也无济于事。“正在初始化…”日志行似乎很好,但是“启动应用程序”和任何其他消息既未记录到控制台,也从未创建过日志文件。我在这里想念什么? 记录器代码如下所示: 这是配置文件: 问题答案: 好吧,