log4j配置文件中的additivity属性

它是 子Logger 是否继承 父Logger 的 输出源(appender)的标志位。具体说,默认情况下子Logger会继承父Logger的appender,也就是说子Logger会在父Logger的appender里输出。若是additivity设为false,则子Logger只会在自己的appender里输出,而不会在父Logger的appender里输出

使用例子:下面是一个log4j的配置文件,父logger是timer和error,子logger是net

#
# Priority = {FATAL|ERROR|WARN|INFO|DEBUG}
#

# +---------------------------------------------------+
# | root                                                  |
# +---------------------------------------------------+

# Category - Root
# ================
log4j.rootLogger=info,timer,error

log4j.logger.timer=info,timer
log4j.additivity.timer=false

log4j.logger.net=info,net
log4j.additivity.net=false

log4j.logger.error=error,error
log4j.additivity.error=false

# Category - hibernate
# ========================================
log4j.category.org.springframework=ERROR
log4j.logger.com.mchange.v2=ERROR
# +---------------------------------------------------+
# | Appender                                          |
# +---------------------------------------------------+
#
# %c Fully class name. 输出所属的类目,通常就是所在类的全名;
# %d Default is ISO8601. Custom:%d{yyy-MM-dd HH:mm:ss }, output example:2002-10-18 22:10:28
# %f Class name.
# %l Location and line number 输出日志事件的发生位置,及在代码中的行数;
# %m Message 输出代码中指定的消息;
# %n Nextline 输出一个回车换行符,Windows平台为"rn”,Unix平台为"n”;
# %p Log priority 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL;
# %r Log consumed time 输出自应用启动到输出该log信息耗费的毫秒数;
# %t Thread name 输出产生该日志事件的线程名;
#

# Appender - stdout
# =========================================
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %l %p: %m%n
log4j.appender.stdout.encoding=UTF-8

log4j.appender.timer=org.apache.log4j.DailyRollingFileAppender
log4j.appender.timer.File=/data/timer_test/log/timer.log
log4j.appender.timer.layout=org.apache.log4j.PatternLayout
log4j.appender.timer.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %l %p: %m%n
log4j.appender.timer.encoding=UTF-8

log4j.appender.net=org.apache.log4j.DailyRollingFileAppender
log4j.appender.net.File=/data/timer_test/log/net.log
log4j.appender.net.layout=org.apache.log4j.PatternLayout
log4j.appender.net.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %l %p: %m%n
log4j.appender.net.encoding=UTF-8

log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.Threshold=ERROR
log4j.appender.error.File=/data/timer_test/log/error.log
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %l %p: %m%n
log4j.appender.error.encoding=UTF-8
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
log4j2是一个流行的Java日志框架,可以通过log4j2.xml文件进行配置。下面是log4j2.xml文件的配置详解: 1. 配置文件动态刷新配置 可以使用monitorInterval属性来设置配置文件的动态刷新间隔,单位为秒。例如: ```xml <Configuration monitorInterval="30"> ``` 2. Configuration的status属性 Configuration标签有一个status属性,用于指定日志记录器的状态。可以设置为debug、info、warn、error、fatal。例如: ```xml <Configuration status="warn"> ``` 3. 日志级别 可以使用属性level来指定日志级别,可以设置为trace、debug、info、warn、error、fatal、off。例如: ```xml <Logger name="com.foo.Bar" level="trace"> ``` 4. Logger与Root标签 Logger标签用于指定特定的类或包的日志级别,而Root标签用于指定所有日志记录器的默认日志级别。例如: ```xml <Root level="error"> <AppenderRef ref="Console"/> </Root> <Logger name="com.foo.Bar" level="trace"> <AppenderRef ref="RollingFile"/> </Logger> ``` 5. Logger的additivity属性 Logger标签还有一个additivity属性,用于指定是否将日志事件传递给记录器。默认情况下,Logger的additivity属性为true。例如: ```xml <Logger name="com.foo.Bar" level="trace" additivity="false"> ``` 6. appender-ref的ref属性 可以使用appender-ref标签来引用appender。例如: ```xml <Logger name="com.foo.Bar" level="trace"> <AppenderRef ref="RollingFile"/> </Logger> ``` 7. appender 可以使用appender标签来指定日志输出的目的地,例如控制台或文件。常用的appender有Console、File、RollingFile等。例如: ```xml <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> <RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"> <PatternLayout pattern="%d %p %c{1.} [%t] %m%n"/> <Policies> <TimeBasedTriggeringPolicy/> <SizeBasedTriggeringPolicy size="250 MB"/> </Policies> </RollingFile> </Appenders> ``` 8. Patterns 可以使用PatternLayout标签来指定日志输出的格式。例如: ```xml <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> ``` 9. Java使用Log4j2 可以使用以下步骤在Java使用Log4j2: 1)导入pom依赖 ```xml <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.14.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.14.1</version> </dependency> ``` 2)配置Log4j2.xml 3)使用日志 ```java import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class MyClass { private static final Logger logger = LogManager.getLogger(MyClass.class); public void doSomething() { logger.debug("Debug message"); logger.info("Info message"); logger.warn("Warn message"); logger.error("Error message"); logger.fatal("Fatal message"); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值