java - 如何在java中使用Log4j获取记录器信息

标签 java jakarta-ee logging log4j

在我的应用程序中,我们使用不同的日志文件。但我无法找到日志消息发送到不同日志文件的方式。 我知道我们可以使用类别指定 log4j.properties 中的包。 有没有办法指定记录器转到某个特定文件并获取有关记录器的一些信息(即渲染日志消息的文件)。

最佳答案

这是一个简单的示例,说明如何在不同的文件中记录不同的消息(错误和事件):

log4j.logger.EventLogger=debug,events
log4j.logger.ErrorLogger=debug,errors

log4j.appender.events=org.apache.log4j.FileAppender
log4j.appender.events.File=events.log
log4j.appender.events.append=false
log4j.appender.events.layout=org.apache.log4j.PatternLayout
log4j.appender.events.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %F:%L - %m%n

log4j.appender.errors=org.apache.log4j.FileAppender
log4j.appender.errors.File=errors.log
log4j.appender.errors.append=false
log4j.appender.errors.layout=org.apache.log4j.PatternLayout
log4j.appender.errors.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %F:%L - %m%n

现在您只需创建两个记录器:

Logger eventLogger = Logger.getLogger("EventLogger");
Logger errorLogger = Logger.getLogger("ErrorLogger");
<小时/>

关于你的第二个问题 - 是的,你可以在运行时获取有关记录器的信息:

Finding Log4J log file

关于java - 如何在java中使用Log4j获取记录器信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25822465/

相关文章:

java - 未注入(inject) Arquillian 的显式本地 EJB

jakarta-ee - Tomcat 中加载的类数持续上升

python - 获取 Scrapy 记录器

java - 使用类 unix 模式删除文件

java - JAR 文件如何读取外部属性文件

java - PaintComponent() 方法未绘制到 JPanel

java - Spring Boot 中的 JPA 查询不返回任何结果

Java/Java EE - 在单一环境中部署来自不同供应商的应用程序服务器

python Elasticsearch : how do you enable curl logging?

java - 在 Java 中更清晰的调试级别日志记录?