java - 为什么我的 log4j2 属性配置不记录到控制台或单独的文件?

标签 java file log4j2

我一直在尝试记录来自特定类别的消息。我只希望将该类中的特定消息记录到单独的文件中,而不是其他任何内容。我似乎无法得到正确的结果,我尝试了多种配置,包括 XML 格式。对我的配置提供反馈会很有帮助。 (见下文)

log4j2.appender.solrindexlog.type=RollingFile
log4j2.appender.solrindexlog.name=SolrIndexLog
log4j2.appender.solrindexlog.fileName=${NAME_LOG_DIR}/tomcat/solrindex.log
log4j2.appender.solrindexlog.filePattern=${NAME_LOG_DIR}/tomcat/solrindexlog-%d{yyyyMMdd}.log
log4j2.appender.solrindexlog.layout.type=PatternLayout
log4j2.appender.solrindexlog.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
log4j2.appender.solrindexlog.policies.type=Policies
log4j2.appender.solrindexlog.policies.time.type=TimeBasedTriggeringPolicy
log4j2.appender.solrindexlog.policies.time.interval=2
log4j2.appender.solrindexlog.policies.time.modulate=true
log4j2.appender.solrindexlog.policies.size.type=SizeBasedTriggeringPolicy
log4j2.appender.solrindexlog.policies.size.size=100MB
log4j2.appender.solrindexlog.strategy.type=DefaultRolloverStrategy
log4j2.appender.solrindexlog.strategy.max=5

log4j2.logger.solrindexlog.name=se.package.name
log4j2.logger.solrindexlog.level=debug
log4j2.logger.solrindexlog.appenderRefs=stdout
log4j2.logger.solrindexlog.appenderRef.stdout.ref=STDOUT

log4j2.rootLogger.level=info
log4j2.rootLogger.appenderRef.stdout.ref=STDOUT
log4j2.rootLogger.appenderRef.solrindexlog.ref=SolrIndexLog
log4j2.rootLogger.appenderRefs=stdout,solrindexlog

最佳答案

尝试下面的配置文件 -

appender.solrindexlog.type=RollingFile
appender.solrindexlog.name=SolrIndexLog
appender.solrindexlog.fileName=${NAME_LOG_DIR}/tomcat/solrindex.log
appender.solrindexlog.filePattern=${NAME_LOG_DIR}/tomcat/solrindexlog-%d{yyyyMMdd}.log
appender.solrindexlog.layout.type=PatternLayout
appender.solrindexlog.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
appender.solrindexlog.policies.type=Policies
appender.solrindexlog.policies.time.type=TimeBasedTriggeringPolicy
appender.solrindexlog.policies.time.interval=2
appender.solrindexlog.policies.time.modulate=true
appender.solrindexlog.policies.size.type=SizeBasedTriggeringPolicy
appender.solrindexlog.policies.size.size=100MB
appender.solrindexlog.strategy.type=DefaultRolloverStrategy
appender.solrindexlog.strategy.max=5

logger.se.package.name.name=se.package.name
logger.se.package.name.level=debug
logger.se.package.name.additivity = false
logger.se.package.name.appenderRef.solrindexlog.ref= SolrIndexLog
logger.se.package.name.appenderRef.stdout.ref= STDOUT

rootLogger.level=info
rootLogger.additivity = false
rootLogger.appenderRef.solrindexlog.ref= SolrIndexLog
rootLogger.appenderRef.stdout.ref= STDOUT

请更改配置文件中未写入上述配置文件的其他部分,例如 ConsoleAppender 等。

此外,根据此配置文件,所有日志消息都将进入文件和控制台。

关于java - 为什么我的 log4j2 属性配置不记录到控制台或单独的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47458083/

相关文章:

file - MPI fscanf() 返回假值

java - 如何使用 log4j2 记录 CXF web 服务请求?

java - XPage:从分类 View 创建 Json 字符串

java - 我正在尝试在 ArrayList 中放置一个标记

java - 无法打开提示目录

java - 使用 Java 的 Scanner 类确定文件结尾

file - 如何将所有控制台输出保存到 R 中的文件中?

java - log4j2中的自定义日志级别问题

java - log4j2 2.13版本中扩展RollingFileAppender的几个方法

java - 在单个 BlackBerry 应用程序中同时显示两个单独的网页