log4j2通用配置

log4j2相对于log4j 1.x有了脱胎换骨的变化,其官网宣称的优势有多线程下10几倍于log4j 1.x和logback的高吞吐量、可配置的审计型日志、基于插件架构的各种灵活配置等。如果已经掌握log4j 1.x,使用log4j2还是非常简单的。
springboot项目中使用logj2
1,引入jar包,maven

                <!-- 包含 mvc,aop 等jar资源 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<exclusions>
			<!-- 切换log4j2日志读取 -->
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		                <!-- 配置 log4j2 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-log4j2</artifactId>
		</dependency>
		<!-- 加上这个才能辨认到log4j2.yml文件 -->
		<dependency>
			<groupId>com.fasterxml.jackson.dataformat</groupId>
			<artifactId>jackson-dataformat-yaml</artifactId>
		</dependency>


2,resources目录下创建log4j2.xml

Configuration:
  status: WARN #打印日志级别OFF>FATAL>ERROR>WARN>INFO>DEBUG>TRACE>ALL
  Properties: # 定义全局变量
    Property: # 缺省配置(用于开发环境)。其他环境需要在VM参数中指定,如下:
      #测试:-Dlog.level.console=warn -Dlog.level.default=trace
      #生产:-Dlog.level.console=warn -Dlog.level.default=info
      - name: log.level.console
        value: info
      - name: log.level.default
        value: info
      - name: log.path
        value: logs #项目根路径
      - name: project.name
        value: log4j2

  Appenders: #输出源,用于定义日志输出的地方,
    Console:  #把日志输出到控制台
      name: CONSOLE
      PatternLayout: #输出日志的格式
        pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%l) - %m%n"
    RollingFile: # 输出到文件,超过128MB归档
      - name: ROLLING_FILE
        ignoreExceptions: false
        fileName: ${log.path}/${project.name}.log
        filePattern: "${log.path}/${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz" #指定当发生Rolling时,文件的转移和重命名规则
        PatternLayout:
          pattern: "%d{yyyy-MM-dd HH:mm:ss,SSS}:%4p %t (%l) - %m%n"
        Policies:
          SizeBasedTriggeringPolicy:
            size: "128 MB" #指定当文件体积大于size指定的值时,触发Rolling
          TimeBasedTriggeringPolicy:
            interval: "1" # 注意filePattern中配置的文件重命名规则是${FILE_NAME}-%d{yyyy-MM-dd HH-mm}-%i,最小的时间粒度是mm,即分钟,TimeBasedTriggeringPolicy指定的size是1,结合起来就是每1分钟生成一个新文件。如果改成%d{yyyy-MM-dd HH},最小粒度为小时,则每一个小时生成一个文件。

        DefaultRolloverStrategy:
          max: 1000 #指定最多保存的文件个数

  Loggers:
    Root:
      level: info
      AppenderRef:
        - ref: CONSOLE
        - ref: ROLLING_FILE
    Logger: # 为com.xjj包配置特殊的Log级别,方便调试
      - name: org.springframework
        additivity: false
        level: error
        AppenderRef:
          - ref: CONSOLE
          - ref: ROLLING_FILE

3,在application.properties引入配置文件

logging.config=classpath:log4j2.yml

4,编写测试类进行测试

public class test {
    public static void main(String[] args) {
        Logger logger = LogManager.getLogger(test.class);
        logger.trace("trace level");
        logger.debug("debug level");
        logger.info("info level");
        logger.warn("warn level");
        logger.error("error level");
        logger.fatal("fatal level");
    }

打印结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值