Log4j2 Properties

Log4j2 一开始抛弃了properties配置文件格式,到2.4版本时,又开始支持properties配置文件格式。到2.6版本又有新的要求。

版本2.8

status = error  
  
property.LOG_HOME=/output/logs  
property.BACKUP_HOME=backup  
property.SERVER_NAME=buddie-Service  
property.EVERY_FILE_SIZE=10M  
property.OUTPUT_LOG_LEVEL=INFO  
property.FILE_MAX=10  
  
appender.console.type = Console  
appender.console.name = STDOUT  
appender.console.layout.type = PatternLayout  
appender.console.layout.pattern = %m%n  
  
appender.rolling.type=RollingFile  
appender.rolling.name=RollingFileAll  
appender.rolling.filter.threshold.level = trace  
appender.rolling.filter.threshold.type = ThresholdFilter  
appender.rolling.fileName=${LOG_HOME}/dev_${SERVER_NAME}_all.log  
appender.rolling.filePattern=${LOG_HOME}/dev_${BACKUP_HOME}/dev_${SERVER_NAME}_all.%d{yyyy-MM-dd-HH}.log  
appender.rolling.layout.type=PatternLayout  
appender.rolling.layout.pattern=%d %p %C{1.} [%t] %m%n  
appender.rolling.policies.type=Policies  
appender.rolling.policies.time.type=TimeBasedTriggeringPolicy  
appender.rolling.policies.time.interval=2  
appender.rolling.policies.time.modulate=true  
appender.rolling.policies.size.type=SizeBasedTriggeringPolicy  
appender.rolling.policies.size.size=${EVERY_FILE_SIZE}  
appender.rolling.strategy.type=DefaultRolloverStrategy  
  
appender.error.type=RollingFile  
appender.error.name=RollingFileError  
appender.error.filter.threshold.level = error  
appender.error.filter.threshold.type = ThresholdFilter  
appender.error.fileName=${LOG_HOME}/dev_${SERVER_NAME}_error.log  
appender.error.filePattern=${LOG_HOME}/dev_${BACKUP_HOME}/dev_${SERVER_NAME}_error.%d{yyyy-MM-dd-HH}.log  
appender.error.layout.type=PatternLayout  
appender.error.layout.pattern=%d %p %C{1.} [%t] %m%n  
appender.error.policies.type=Policies  
appender.error.policies.time.type=TimeBasedTriggeringPolicy  
appender.error.policies.time.interval=2  
appender.error.policies.time.modulate=true  
appender.error.policies.size.type=SizeBasedTriggeringPolicy  
appender.error.policies.size.size=${EVERY_FILE_SIZE}  
appender.error.strategy.type=DefaultRolloverStrategy  
  
appender.charge.type=RollingFile  
appender.charge.name=RollingFileCharge  
appender.charge.filter.threshold.level = trace  
appender.charge.filter.threshold.type = ThresholdFilter  
appender.charge.fileName=${LOG_HOME}/dev_${SERVER_NAME}_charge.log  
appender.charge.filePattern=${LOG_HOME}/dev_${BACKUP_HOME}/dev_${SERVER_NAME}_charge.%d{yyyy-MM-dd-HH}.log  
appender.charge.layout.type=PatternLayout  
appender.charge.layout.pattern=%d %p %C{1.} [%t] %m%n  
appender.charge.policies.type=Policies  
appender.charge.policies.time.type=TimeBasedTriggeringPolicy  
appender.charge.policies.time.interval=2  
appender.charge.policies.time.modulate=true  
appender.charge.policies.size.type=SizeBasedTriggeringPolicy  
appender.charge.policies.size.size=${EVERY_FILE_SIZE}  
appender.charge.strategy.type=DefaultRolloverStrategy  
  
logger.activity.name = buddie.activity  
logger.activity.level = debug  
logger.activity.additivity = false  
logger.activity.appenderRef.all.ref = RollingFileAll  
logger.activity.appenderRef.error.ref = RollingFileError  
logger.activity.appenderRef.stdout.ref = STDOUT  
  
logger.login.name = buddie.login  
logger.login.level = debug  
logger.login.additivity = false  
logger.login.appenderRef.all.ref = RollingFileAll  
logger.login.appenderRef.error.ref = RollingFileError  
logger.login.appenderRef.stdout.ref = STDOUT  
  
logger.charge.name = buddie.charge  
logger.charge.level = trace  
logger.charge.additivity = false  
logger.charge.appenderRef.all.ref = RollingFileAll  
logger.charge.appenderRef.error.ref = RollingFileError  
logger.charge.appenderRef.charge.ref = RollingFileCharge  
logger.charge.appenderRef.stdout.ref = STDOUT  
  
rootLogger.level = info  
rootLogger.appenderRef.stdout.ref = STDOUT  
rootLogger.appenderRef.all.ref = RollingFileAll  
rootLogger.appenderRef.error.ref = RollingFileError  

 

logger.login.name = buddie.login  
logger.login.level = debug  
logger.login.additivity = false  
logger.login.appenderRef.all.ref = RollingFileAll  
logger.login.appenderRef.error.ref = RollingFileError  
logger.login.appenderRef.stdout.ref = STDOUT  
  
logger.charge.name = buddie.charge  
logger.charge.level = trace  
logger.charge.additivity = false  
logger.charge.appenderRef.all.ref = RollingFileAll  
logger.charge.appenderRef.error.ref = RollingFileError  
logger.charge.appenderRef.charge.ref = RollingFileCharge  
logger.charge.appenderRef.stdout.ref = STDOU

其中,logger.login.name = buddie.login和logger.charge.name = buddie.charge是自定义的logger,login和charge可以自定义,name后面的值buddie.login和buddie.charge对应的是包名。

 

版本2.9

status = error
dest = err
name = PropertiesConfig
 
property.filename = target/rolling/rollingtest.log
 
filter.threshold.type = ThresholdFilter
filter.threshold.level = debug
 
appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %m%n
appender.console.filter.threshold.type = ThresholdFilter
appender.console.filter.threshold.level = error
 
appender.rolling.type = RollingFile
appender.rolling.name = RollingFile
appender.rolling.fileName = ${filename}
appender.rolling.filePattern = target/rolling2/test1-%d{MM-dd-yy-HH-mm-ss}-%i.log.gz
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d %p %C{1.} [%t] %m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 2
appender.rolling.policies.time.modulate = true
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size=100MB
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.max = 5
 
logger.rolling.name = com.example.my.app
logger.rolling.level = debug
logger.rolling.additivity = false
logger.rolling.appenderRef.rolling.ref = RollingFile
 
rootLogger.level = info
rootLogger.appenderRef.stdout.ref = STDOUT

 

### Java 中 log4j2 Properties 文件配置示例 对于 `log4j2` 的配置,虽然传统上使用 XML 或 JSON 格式的文件更为常见,但是也可以采用 `.properties` 文件来简化配置过程。下面展示了一个典型的 `log4j2.properties` 文件结构及其组成部分。 #### 配置根 Logger 和 Appenders 定义全局的日志级别以及日志输出的目标位置是必要的第一步: ```properties status = error name = PropertiesConfig # 定义所有appender的名字和类型 appenders = console, rolling # 控制台输出配置 appender.console.type = Console appender.console.name = STDOUT appender.console.target = SYSTEM_OUT appender.console.layout.type = PatternLayout appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n # 日志滚动文件配置 appender.rolling.type = RollingFile appender.rolling.name = LOGFILE appender.rolling.fileName = ${baseDir}/app.log appender.rolling.filePattern = ${baseDir}/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}.%i.log.gz appender.rolling.layout.type = PatternLayout appender.rolling.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n appender.rolling.policies.type = Policies appender.rolling.policies.time.interval = 1 appender.rolling.policies.time.modulate = true appender.rolling.policies.size.type = SizeBasedTriggeringPolicy appender.rolling.policies.size.size=10MB appender.rolling.strategy.type = DefaultRolloverStrategy appender.rolling.strategy.max = 20 # 设置root logger的级别并关联appender rootLogger.level = info rootLogger.appenderRef.stdout.ref = STDOUT rootLogger.appenderRef.rolling.ref = LOGFILE ``` 上述配置指定了两个 appenders:一个是控制台 (`console`) 输出;另一个是带有时间戳和大小限制条件下的日志轮转机制(`rolling`). 同时设置了 root logger 使用这两个 appenders 并将其最低日志等级设为 `info`. #### 自定义 Logger 除了默认的 root logger 外还可以自定义特定包名或类级别的 logger: ```properties logger.somepackage.name = com.example.somepackage logger.somepackage.level = debug logger.somepackage.additivity = false logger.somepackage.appenderRef.rolling.ref = LOGFILE ``` 这段代码片段展示了如何针对某个具体的软件包(这里是假设的例子 `com.example.somepackage`),单独设定其日志记录行为而不影响其他部分的日志设置[^3]. #### 关键组件说明 - **Status**: 设定内部状态日志的严重程度. - **Name**: 给整个配置命名. - **Appenders**: 列举所有的 appender 名字以便后续引用. - **Root Logger Level & Appender References**: 指明哪些 appenders 应该被应用到 root logger 上面. 此配置方式不仅简洁而且易于维护,在小型项目或是需要快速部署的应用场景下尤为适用[^4].
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值