Java项目引入日志生成器及其日志分级
admin
2024-04-27 01:39:48
0

Java项目引入日志生成器及其日志分级

  • 项目情况
    • 依赖引入
    • bootstrap.yml文件添加内容
    • 添加日志生成器配置文件
    • 使用

项目情况

maven管理依赖的spring(spring-cloud-alibaba)项目,使用idea编译,jdk版本1.8。

为项目引入日志生成器,为方便依赖管理,决定采用Lombok自带的Slf4j,加上logstash-logback-encoder,实现日志分级输出到文件和控制台。

依赖引入

项目pom文件里添加以下依赖,然后重新加载依赖。

        org.projectlomboklombok1.18.24providednet.logstash.logbacklogstash-logback-encoder4.11

bootstrap.yml文件添加内容

bootstrap.yml是spring cloud的配置文件,可以存在多个,在指定的bootstrap.yml文件里,添加日志相关配置。

logging:file:path: logs #content root目录下的logs文件夹存放日志,不存在则创建level: #设置指定包下的日志级别com:alibaba:nacos:client:config:impl: warnexample: debugorg:apache:ibatis:logging:jdbc: debugpattern: # 日志输出格式console:%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n

添加日志生成器配置文件

在resources文件夹下新增两个文件logback-json.xml、logback-spring.xml。

logback-json.xml

${JSON_LOG_FILE}${LOG_FILE_CLEAN_HISTORY_ON_START:-false}${JSON_ROLLING_FILE_NAME_PATTERN:-${JSON_LOG_FILE}.%d{yyyy-MM-dd}.%i.gz}${LOG_FILE_MAX_SIZE:-512MB}${LOG_FILE_MAX_HISTORY:-30}${LOG_FILE_TOTAL_SIZE_CAP:-0}UTC{"serviceName": "${LOG_NAME}","level": "%level","trace": "%X{X-B3-TraceId:-}","span": "%X{X-B3-SpanId:-}","parent": "%X{X-B3-ParentSpanId:-}","thread": "%thread","class": "%logger{40}","message": "%message","exception": "%exception{10}"}

logback-spring.xml


${LOG_NAME}%boldMagenta(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %cyan(%logger{50}) - %msg %ndebug%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%nUTF-8${LOG_PATH}/${LOG_NAME}-debug.%d{yyyy-MM-dd}.log${LOG_FILE_MAX_HISTORY}${LOG_FILE_MAX_SIZE}INFO%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%nUTF-8${LOG_PATH}/${LOG_NAME}-info.%d{yyyy-MM-dd}.log${LOG_FILE_MAX_HISTORY}${LOG_FILE_MAX_SIZE}ERROR%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%nUTF-8${LOG_PATH}/${LOG_NAME}-error.%d{yyyy-MM-dd}.log${LOG_FILE_MAX_HISTORY}${LOG_FILE_MAX_SIZE}

使用

if (log.isDebugEnabled()) {log.info("测试日志");
}
2022-12-20 16:28:54 [http-nio-8088-exec-1] INFO  com.example.interfaces.UserController - 测试日志 

相关内容

热门资讯

海关总署:APEC各经济体应加... 8月22日,作为亚太经合组织(APEC)“中国年”系列活动的重要组成部分,为期三天的APEC海关手续...
人形机器人运动会400米预赛开... 8月22日,第二届世界人形机器人运动会今晚在北京国家速滑馆“冰丝带”正式开幕。田径400米大型组率先...
交易的成熟,始于从容面对亏损 ... 你有没有过这种经历?信号出现时,你明知该进场,手却悬在鼠标上,脑子里反复计算万一亏了怎么办。止损设好...
众擎机器人发布仿人脑具身智能引... 8月22日,世界机器人大会WRC期间,众擎机器人CTO李力耘系统阐释了公司全栈具身智能技术路线与全新...
魔法原子亮相WRC 2026,... 8月19日至23日,魔法原子亮相WRC2026,以"打造场景驱动的物理AI原生平台"为核心叙事,将"...
给“特变电工”挑刺! 特变电工... 我们的非控股子公司特变电工周五晚上交出了上半年成绩单,不少老朋友都很积极,第一时间就提醒我发布了半年...
伊拉克希望伊朗向其油轮发放特别... 8月22日,据伊朗方面当地时间22日消息,在伊朗伊斯兰议会议长卡利巴夫访问伊拉克期间,伊拉克方面提出...
上海电气与中国航发黎明共商高端... 8月22日,上海电气集团党委书记、董事长吴磊21日下午与中国航发沈阳黎明航空发动机有限责任公司党委书...
极兔上半年净利增超124%,日... 2026年8月20日,极兔公布2026年中期业绩。2026年上半年,公司全球业务稳步发展,有力拉动业...
上半年日赚超2亿元,“矿茅”紫... 8月21日晚间,国内“矿茅”紫金矿业(601899.SH/2899.HK)发布2026年半年度报告。...