繁体   English   中英

将 log4j.properties 更改为 log4j2.properties

[英]Changing log4j .properties to log4j2 .properties

log4j.threshold=INFO
log4j.rootCategory=DEBUG, DEFAULT, ERROR

log4j.appender.DEFAULT=org.apache.log4j.RollingFileAppender
log4j.appender.DEFAULT.File=/logs/appname/${SERVER_NAME}/log.log
log4j.appender.DEFAULT.MaxFileSize=10MB
log4j.appender.DEFAULT.MaxBackupIndex=10
log4j.appender.DEFAULT.layout=org.apache.log4j.PatternLayout
log4j.appender.DEFAULT.layout.ConversionPattern=%d{dd.MM.yyyy HH:mm:ss.SSS} %-5p [%X{userName}][%X{myInterfaceName}][%t] %c - %m%n

log4j.appender.ERROR=org.apache.log4j.RollingFileAppender
log4j.appender.ERROR.maxFileSize=10MB
log4j.appender.ERROR.maxBackupIndex=10
log4j.appender.ERROR.File=/logs/appname/${SERVER_NAME}/logError.log
log4j.appender.ERROR.threshold=ERROR
log4j.appender.ERROR.layout=org.apache.log4j.PatternLayout
log4j.appender.ERROR.layout.ConversionPattern=%d{dd.MM.yyyy HH:mm:ss.SSS} %-5p [%X{userName}][%X{myInterfaceName}][%t] %c - %m%n

log4j.logger.org.apache = INFO
log4j.logger.org.opensaml = INFO

你好。 您能帮我将 log4j 属性迁移到 log4j2 吗? 第一个代码片段是 original.properties,第二个是我尝试创建 log4j2.properties。

appender.DEFAULT.type = RollingFile
appender.DEFAULT.name = fileLogger1
appender.DEFAULT.fileName= /logs/appname/${SERVER_NAME}/log.log
appender.DEFAULT.layout.type = PatternLayout
appender.DEFAULT.layout.pattern = %d{dd.MM.yyyy HH:mm:ss.SSS} %-5p [%X{userName}][%X{myInterfaceName}][%t] %c - %m%n
appender.DEFAULT.policies.type = Policies
appender.DEFAULT.policies.size.type = SizeBasedTriggeringPolicy
appender.DEFAULT.policies.size.size = 10MB

appender.ERROR.type = RollingFile
appender.ERROR.name = fileLogger2
appender.ERROR.fileName= /logs/appname/${SERVER_NAME}/logError.log
appender.ERROR.layout.type = PatternLayout
appender.ERROR.layout.pattern = %d{dd.MM.yyyy HH:mm:ss.SSS} %-5p [%X{userName}][%X{myInterfaceName}][%t] %c - %m%n
appender.ERROR.policies.type = Policies
appender.ERROR.policies.size.type = SizeBasedTriggeringPolicy
appender.ERROR.policies.size.size = 10MB

rootLogger.appenderRefs = DEFAULT, ERROR
rootLogger.appenderRef.DEFAULT.ref = fileLogger1
rootLogger.appenderRef.ERROR.ref = fileLogger2

第二个片段是否正确? 我应该如何在 log4j2 中实现以下几行?

log4j.threshold=INFO 
log4j.appender.ERROR.threshold=ERROR
log4j.appender.DEFAULT.MaxBackupIndex=10
log4j.appender.ERROR.maxBackupIndex=10
log4j.logger.org.apache = INFO
log4j.logger.org.opensaml = INFO

您的配置似乎没问题。

MaxBackupIndex属性并没有消失,但它被移到了滚动策略中。 您需要将具有max属性的DefaultRolloverStrategy添加到您的附加程序中:

appender.DEFAULT.strategy.type = DefaultRolloverStrategy
appender.DEFAULT.strategy.max = 10
appender.ERROR.strategy.type = DefaultRolloverStrategy
appender.ERROR.strategy.max = 10

其余属性是过滤器。 有许多等效的方法可以向组件添加过滤器(参见过滤器文档):

  • log4j.threshold属性可以替换为全局ThresholdFilter

     filter.1.type = ThresholdFilter filter.1.level = INFO
  • 以同样的方式,您可以将Threshold过滤器添加到附加程序,但可以通过在AppenderRef上设置level属性来更有效地完成此操作:

     rootLogger.appenderRef.ERROR.level = ERROR
  • log4j.logger前缀在 Log4j 1.x 中用于配置记录器。 在 Log4j 2.x 中,您可以这样做:

     logger.1.name = org.apache logger.1.level = INFO logger.2.name = org.opensaml logger.2.level = INFO

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM