对于log4j2的一些记录

我是用log4j2.yml做的日志文件,所以需要先导入几个包:
首先,先排除springboot自带的日志:

		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
<!--            排除springboot自带的包,这里注意,如果在spring-boot-starter-web中排除,排不干净-->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

之后需要加入log4j2的依赖:

        <!-- 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>

最后,送上一份比较全的配置文件:

Configuration:
  status: info #用来指定log4j本身的打印日志的级别
  monitorInterval: 30 #用于指定log4j自动重新配置的监测间隔时间,单位是s,最小是5s.

  Properties: # 定义全局变量
    Property:
      -
        name: log.level
        value: info
      -
        name: log.path
        value: D:/pkt/log
      -
        name: project.name
        value: ptk
      -
        name: log.pattern
        #%p:日志的优先级
        #%d{}:时间{格式}
        # %C(区分大小写):列出调用logger的类的全名
        #%l:输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数
        #%F:显示调用logger的源文件名
        #%r:显示从程序启动时到记录该条日志时已经经过的毫秒数
        #%m:显示输出信息
        #%n:换行
        value: "【%p】,%d{yyyy-MM-dd HH:mm:ss.SSS},%C,%l,%m%n"
  Appenders:
    Console:  # 输出到控制台
      name: CONSOLE #指定名字
      target: SYSTEM_OUT
      PatternLayout:
        pattern: ${log.pattern}

    RollingFile: # RollingFile节点用来定义超过指定大小自动删除旧的创建新的的Appender
      name: ROLLING_FILE
      # fileName  指定输出日志的目的文件带全路径的文件名
      fileName: ${log.path}/${project.name}.log
      # filePattern  指定当发生Rolling时,文件的转移和重命名规则
      filePattern: "${log.path}/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
      PatternLayout:
        pattern: ${log.pattern}
      Filters: #一定要先去除不接受的日志级别,然后获取需要接受的日志级别
        ThresholdFilter:
          #onMatch和onMismatch可以选择的值及其含义。可选的值分别是,ACCEPT(允许), DENY(拒绝), NEUTRAL(中立)
          - level: ${log.level}
            onMatch: ACCEPT
            onMismatch: DENY
      Policies: #指定滚动日志的策略,就是什么时候进行新建日志文件输出日志
        TimeBasedTriggeringPolicy:  # 按天分类
          modulate: true #modulate=true用来调整时间:比如现在是早上3am,interval是4,那么第一次滚动是在4am,接着是8am,12am...而不是7am
          interval: 1 #单位为h
      DefaultRolloverStrategy:     # 用来指定同一个文件夹下最多有几个日志文件时开始删除最旧的,创建新的(通过max属性),默认是7个,最多100个
        max: 100

  # 只有定义了 Loggers,并引入 Appenders,Appenders才会生效
  Loggers:
    Root: #用来指定项目的根日志,如果没有单独指定Logger,那么就会默认使用该Root日志输出
      level: error
      AppenderRef: #用来指定该日志输出到哪个Appender
        - ref: CONSOLE
        - ref: ROLLING_FILE

    Logger: # 用来单独指定日志的形式,比如要为指定包下的class指定不同的日志级别等,为com.***包配置特殊的Log级别,方便调试,trace会打印SQL具体结果,debug只打印SQL语句
      - name: com.***.mapper #:用来指定该Logger所适用的类或者类所在的包全路径
        additivity: false
        level: trace
        #用来指定该日志输出到哪个Appender,如果没有指定,就会默认继承自Root.如果指定了,
        #那么会在指定的这个Appender和Root的Appender中都会输出,此时我们可以设置Logger的additivity="false"只在自定义的Appender中进行输出
        AppenderRef:
          - ref: CONSOLE
          - ref: ROLLING_FILE
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值