工作纪实48-log4j日志隔离

接到一个需求,需要对日志数据进行打印(区分主日志文件,只输出跟特定业务相关的数据),以便kafka可以对文件进行数据抽取,存储到hive;
虽然log4j用的很多,但是有时候真自己配,还是有点生的,记录一下

1.yml文件

Configuration:
  status: info
  monitorInterval: 30
  properties:
    property:
      name: log.path
      value: /opt/service/tmp/logs
  Appenders:
    RollingFile:
     - name: error_file
       DefaultRolloverStrategy:
         Delete:
           basePath: ${log.path}
           IfFileName:
             glob: "*log"
           IfLastModified:
             age: 1d
       fileName: ${log.path}/error.log
       filePattern: "${log.path}/error_%d{yyyy-MM-dd}.log"
       PatternLayout:
         Pattern: "[%X{request_id}] %-d{yyyy-MM-dd HH:mm:ss.SSS} - [%p] [%C{1} %M] %m%n"
       Policies:
         TimeBasedTriggeringPolicy:
           interval: 1
           modulate: true
     - name: bus_file
       # 清除策略
       DefaultRolloverStrategy:
         Delete:
           basePath: ${log.path}
           IfFileName:
             glob: "*log"
           IfLastModified:
             age: 1d
       fileName: ${log.path}/bus.log
       filePattern: "${log.path}/bus_%d{yyyy-MM-dd}.log"
       PatternLayout:
         Pattern: "[%X{request_id}] %-d{yyyy-MM-dd HH:mm:ss.SSS} - [%p] [%C{1} %M] %m%n"
       Policies:
         TimeBasedTriggeringPolicy:
           interval: 1
           modulate: true
     - name: feedback_dump_appender
       DefaultRolloverStrategy:
         Delete:
           basePath: ${log.path}
           IfFileName:
             glob: "*log"
           IfLastModified:
             age: 1d
       fileName: ${log.path}/dump/feedback_log.log
       filePattern: "${log.path}/slow_sql%d{yyyy-MM-dd}.log"
       PatternLayout:
         Pattern: "%m%n"
       Policies:
         TimeBasedTriggeringPolicy:
           interval: 1
           modulate: true

    Console:
      name: console
      target: SYSTEM_OUT
      PatternLayout:
        Pattern: "[%X{request_id}] %-d{yyyy-MM-dd HH:mm:ss} - [%p] [%C{1} %M] %m%n"
  Loggers:
    Root:
      level: info
      AppenderRef:
        -  ref: error_file
           level: ERROR
        -  ref: bus_file
           level: INFO
        -  ref: console
           level: debug
    Logger:
      - name: feedback_dump_logger
        level: info
        AppenderRef:
          - ref: feedback_dump_appender
            level: INFO

2.java代码

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

private Logger dumpLog = LoggerFactory.getLogger("feedback_dump_logger");

# 日志输出
String dump = String.format("%d\u0001%s\u0001%s\u0001%s\u0001%d\u0001%s\u0001%d\u0001%d\u0001%s",
                System.currentTimeMillis(),
                scene,
                bgv2,
                imei,
                uid,
                company,
                infoId,
                originCateId,
                JSON.toJSONString(maps)
        );

3.日志输出

在这里插入图片描述

总结: appder定义好之后,定义Logger器就可以了!

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值