logback传递参数,讲参数拼接到日志文件名上
2022/3/29 6:26:32
本文主要是介绍logback传递参数,讲参数拼接到日志文件名上,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
springBoot配置logback:https://www.cnblogs.com/liufei2/p/16069903.html
指定某个类的日志输出到指定文件中:https://www.cnblogs.com/liufei2/p/16069914.html
下面又来了?
我想传递个参数,根据这个参数,输出到不同的文件中
方法一:环境变量
<appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>./${project-id}-execution-detail-info.log</file> <encoder> <charset>UTF-8</charset> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level ${PID:-} --- [%t] %logger{50} - %msg%n</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> </appender>
这个project-id变量,可以在环境变量中设定,但是一旦设定了,我们就不好改了。
方法二:MDC
详细信息参考:https://logback.qos.ch/manual/mdc.html
<appender name="EXECUTION_LOG" class="ch.qos.logback.classic.sift.SiftingAppender"> <discriminator> <Key>project-id</Key> <DefaultValue>default</DefaultValue> </discriminator> <sift> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>${LOG_HISTORY_PATH}/${project-id}-execution-detail-info.log</file> <Append>true</Append> <encoder> <charset>UTF-8</charset> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level ${PID:-} --- [%t] %logger{50} - %msg%n</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> </appender> </sift> </appender>
测试代码
@GetMapping("/logTest") public String logTest() { String projectId = UUID.randomUUID().toString().substring(0, 8); MDC.put("project-id", projectId); logger.info("project-id={}, logTest success!", projectId); return "ok"; }
说明:
- 这里无论单线程还是多线程,都是没问题的
- 如果不指定project-id,我们设置了默认值是default
测试验证
@GetMapping public String ping() { logger.info("ping success!"); return "ok"; } @GetMapping("/logTest") public String logTest() { String projectId = UUID.randomUUID().toString().substring(0, 8); MDC.put("project-id", projectId); logger.info("project-id={}, logTest success!", projectId); return "ok"; }
ping方法,我们没有指定project-id
调了三次,三次都写到了project-id=default的文件下
logTest方法,也调三次
产生了三个日志文件,每个日志文件中,只有一次调用的日志记录
这样,我们就可以根据一些标志来收集日志
当然日志的收集方式很多,后面会再次介绍别的方式
参考文档
https://logback.qos.ch/manual/configuration.html#variableSubstitution
https://blog.csdn.net/weixin_34122810/article/details/91915935?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-1.pc_relevant_default&spm=1001.2101.3001.4242.2&utm_relevant_index=4
这篇关于logback传递参数,讲参数拼接到日志文件名上的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27Nacos多环境配置学习入门
- 2024-12-27Nacos快速入门学习入门
- 2024-12-27Nacos快速入门学习入门
- 2024-12-27Nacos配置中心学习入门指南
- 2024-12-27Nacos配置中心学习入门
- 2024-12-27Nacos做项目隔离学习入门
- 2024-12-27Nacos做项目隔离学习入门
- 2024-12-27Nacos初识学习入门:轻松掌握服务发现与配置管理
- 2024-12-27Nacos初识学习入门:轻松掌握Nacos基础操作
- 2024-12-27Nacos多环境配置学习入门