zoukankan      html  css  js  c++  java
  • 日志

    log4j2的使用

    maven依赖:

    <dependencies>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.6.6</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-slf4j-impl</artifactId>
                <version>2.3</version>
            </dependency>
         <!--注意版本问题-->
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
                <version>2.8.2</version>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>2.8.2</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-jcl</artifactId>
                <version>2.8.2</version>
            </dependency>
    
    
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.10.0</version>
            </dependency>
    
            <dependency>
                <groupId>org.yaml</groupId>
                <artifactId>snakeyaml</artifactId>
                <version>1.25</version>
            </dependency>
    
            <dependency>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-yaml</artifactId>
                <version>2.9.8</version>
            </dependency>
        </dependencies>

    yml配置:

    # https://blog.csdn.net/u010598111/article/details/80556437
    # 共有8个级别,按照从低到高为:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF。
    Configuration:
      status: info
      monitorInterval: 30
      Properties: # 定义全局变量
        Property: # 缺省配置(用于开发环境)。其他环境需要在VM参数中指定,如下:
          #测试:-Dlog.level.console=warn -Dlog.level.xjj=trace
          #生产:-Dlog.level.console=warn -Dlog.level.xjj=info
          - name: log.level.console
            value: info
          - name: log.path
            value: log
          - name: project.name
            value: xinyar-erp-auto
          - name: log.pattern
            value: "%d{yyyy-MM-dd HH:mm:ss.SSS} -%5p ${PID:-} [%15.15t] %C{1.} : %m%n"
      Appenders:
        Console:  #输出到控制台
          name: CONSOLE
          target: SYSTEM_OUT
          PatternLayout:
            pattern: ${log.pattern}
        #   启动日志
        RollingFile:
          - name: ROLLING_FILE
            fileName: D:/${log.path}/${project.name}.log
            filePattern: "D:/${log.path}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
            PatternLayout:
              pattern: ${log.pattern}
            Filters:
              #        一定要先去除不接受的日志级别,然后获取需要接受的日志级别
              ThresholdFilter:
                - level: error
                  onMatch: DENY
                  onMismatch: NEUTRAL
                - level: info
                  onMatch: ACCEPT
                  onMismatch: DENY
            Policies:
              TimeBasedTriggeringPolicy:  # 按天分类
                modulate: true
                interval: 1
              SizeBasedTriggeringPolicy:
                size: 2MB
            DefaultRolloverStrategy:     # 文件最多100个
              max: 100
          #   平台日志
          - name: PLATFORM_ROLLING_FILE
            ignoreExceptions: false
            fileName: ${log.path}/platform/${project.name}_platform.log
            filePattern: "${log.path}/platform/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
            PatternLayout:
              pattern: ${log.pattern}
            Policies:
              TimeBasedTriggeringPolicy:  # 按天分类
                modulate: true
                interval: 1
            DefaultRolloverStrategy:     # 文件最多100个
              max: 100
          #   业务日志
          - name: BUSSINESS_ROLLING_FILE
            ignoreExceptions: false
            fileName: ${log.path}/bussiness/${project.name}_bussiness.log
            filePattern: "${log.path}/bussiness/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
            PatternLayout:
              pattern: ${log.pattern}
            Policies:
              TimeBasedTriggeringPolicy:  # 按天分类
                modulate: true
                interval: 1
            DefaultRolloverStrategy:     # 文件最多100个
              max: 100
          #   错误日志
          - name: EXCEPTION_ROLLING_FILE
            ignoreExceptions: false
            fileName: ${log.path}/exception/${project.name}_exception.log
            filePattern: "${log.path}/exception/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
            ThresholdFilter:
              level: error
              onMatch: ACCEPT
              onMismatch: DENY
            PatternLayout:
              pattern: ${log.pattern}
            Policies:
              TimeBasedTriggeringPolicy:  # 按天分类
                modulate: true
                interval: 1
            DefaultRolloverStrategy:     # 文件最多100个
              max: 100
          #   DB 日志
          - name: DB_ROLLING_FILE
            ignoreExceptions: false
            fileName: ${log.path}/db/${project.name}_db.log
            filePattern: "D:/${log.path}/db/$${date:yyyy-MM}/${project.name}-%d{yyyy-MM-dd}-%i.log.gz"
            PatternLayout:
              pattern: ${log.pattern}
            Policies:
              TimeBasedTriggeringPolicy:  # 按天分类
                modulate: true
                interval: 1
            DefaultRolloverStrategy:     # 文件最多100个
              max: 100
      Loggers:
        Root:
          level: info
          AppenderRef:
            - ref: CONSOLE
            - ref: ROLLING_FILE
            - ref: EXCEPTION_ROLLING_FILE
        Logger:
          - name: platform
            level: info
            additivity: false
            AppenderRef:
              - ref: CONSOLE
              - ref: PLATFORM_ROLLING_FILE
          - name: bussiness
            level: info
            additivity: false
            AppenderRef:
              - ref: BUSSINESS_ROLLING_FILE
          - name: exception
            level: error
            additivity: false
            AppenderRef:
              - ref: EXCEPTION_ROLLING_FILE
          - name: db
            level: info
            additivity: false
            AppenderRef:
              - ref: DB_ROLLING_FILE
    #    监听具体包下面的日志
    #    Logger: # 为com.xjj包配置特殊的Log级别,方便调试
    #      - name: com.xjj
    #        additivity: false
    #        level: ${sys:log.level.xjj}
    #        AppenderRef:
    #          - ref: CONSOLE
    #          - ref: ROLLING_FILE
  • 相关阅读:
    还在写onClickListener()???你OUT拉
    Java 中的reference
    如何将eclipse上的android项目转移到android studio
    List,Set,Map再学习一下
    Java对象实例化的速度的一个试验
    如何自定义ImageView并让其渐变出现(李刚老师)
    android studio 中git插件的使用 github项目的配置及操作
    eGit插件
    原来Linux才是深入学习3D的好去处【原创】
    用FileMapping跨进程共享数据
  • 原文地址:https://www.cnblogs.com/gendway/p/14345314.html
Copyright © 2011-2022 走看看