Spring boot - log4j2从入门到精通不完全指南

Spring boot

log4j2官网:https://logging.apache.org/log4j/2.x/

配置log4j2

application.properties
logging.config= classpath:config/log4j2-dev.xml
maven配置
        <dependency> <!-- 引入log4j2依赖 -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
        
        <!--移除spring boot 原生logging的依赖-->
             <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>

spi 用户实现的接口

Logger -> Appender -> Filter -> Layout -> ObjectRenderer -> Destination

日志对象 Logger

日志级别 Level

日志管理器 LogManager 初始化默认log配置 维护日志仓储 获取日志对象

日志仓储 LoggerRepository 管理日志级别阈值 管理日志对象

日志附加器 Appender 具体输出介质 附加日志事件 关联日志布局 关联日志过滤器 关联错误处理器 Console 文件 file rollingFile dailyRollingFile Socket JMS SMTP Async

日志过滤器 Filter DENY ACCEPT NEUTRAL

日志格式布局 Layout 简单格式 模式格式 提升模式格式 html格式 xml格式 ttcc格式

日志事件 LoggingEvent 日志事件是用于承载日志信息的对象 日志名称 日志内容 日志级别 异常信息 当前线程名称 时间戳 嵌入诊断上下文NDC 映射诊断上下文MDC

日志配置器 Configurator 重点* 外部配置文件配置log4j行为的api 配置文件间接调用api 1.properties 2.xml

日志诊断上下文 NDC嵌套 push pop 堆栈 MDC映射KeyValue的形式存储诊断信息 占位符 最终输出的内容

1.错误日志,有必要记录e.printStackTrace()信息吗

有必要,但多的时候可以通过JVM来控制异常栈输出

2.怎么判断我该把这个日志记录在哪个级别

DEBUG 级别记录一些上下文参数,以及输出结果

INFO 级别记录一些操作成功或者失败,类似于黑盒结果

WARN 级别记录 CPU,一些阈值达到了,或者不主要的输入输出

ERROR 记录一些相关的错误

3.MDC

log(“some error”)//没法传递用户ID,可以通过MDC的方式 在上文传递用户ID

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值