logback.xml 日志实践(文章最后有参考配置)
- 当配置日志生成路径如下时
<!-- 定义日志的根目录 -->
<property name="LOG_HOME" value="../logs"/>
<!-- 定义日志文件名称 -->
<property name="appName" value="idolCome"/>
<file>${LOG_HOME}/${appName}.log</file>
本地日志生成的路径直接在磁盘的根目录下,当时我这个项目时放在F盘,生成日志文件
f:/logs/idolCome.log
- 当配置路径如下
<!-- 定义日志的根目录 -->
<property name="LOG_HOME" value="logs"/>
<!-- 定义日志文件名称 -->
<property name="appName" value="idolCome"/>
<file>${LOG_HOME}/${appName}.log</file>
该项目为SpringBoot多模块项目,配置文件位于Controller层Resource。最后日志文件位于父项目的目录下
logBack 其他标签属性说明 property(相当于定义变量,提供给其他地方使用)
<property name="LOG_HOME" value="logs"/>
<property name="appName" value="idolCome"/>
定义属性值方便在其他标签中进行引用如下
<file>${LOG_HOME}/${appName}.log</file>
appender标签(日志放到哪里去,怎么放)
在我理解的apender标签就是为了定义日志的输出格式如果时文件的话就输出文件地址
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<!-- 日志输出格式:
%d表示日期时间,
%thread表示线程名,
%-5level:级别从左显示5个字符宽度
%logger{50} 表示logger名字最长50个字符,否则按照句点分割。
%msg:日志消息,
%n是换行符
-->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ==> [%thread] ==> %-5level%logger{50} - %msg%n</pattern>
</layout>
</appender>
logger 配置标签配置包的日志输出级别
root 标签也是配置日志输出级别
<!--
root与logger是父子关系,没有特别定义则默认为root,任何一个类只会和一个logger对应,
要么是定义的logger,要么是root,判断的关键在于找到这个logger,然后判断这个logger的appender和level。
-->
<root level="info">
<appender-ref ref="stdout"/>
<appender-ref ref="appLogAppender"/>
</root>
接下来是直接引用SpringBoot自带的日志配置文件位于
<include resource="org/springframework/boot/logging/logback/base.xml" />
可以在自带配置的前提下进行扩展自定义
参考logBack.xml配置 来至于 Springboot 集成logback 日志框架简介
<configuration debug="true">
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
<property name="APP_NAME" value="Logback"/>
<property name="APP_HOME" value="/home/logback"/>
<property name="LOG_HOME_PATH" value="${APP_HOME}/logs"/>
<property name="DEBUG_LOG_FILE" value="${LOG_HOME_PATH}/debug/${APP_NAME}_debug" />
<property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}" />
<appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${DEBUG_LOG_FILE}.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>60</MaxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<root level="INFO">
<appender-ref ref="DEBUG_FILE" />
<appender-ref ref="CONSOLE"/>
</root>
<logger name="com.mingrn.logback" level="DEBUG">
<appender-ref ref="DEBUG_FILE"/>
</logger>
<logger name="com.mingrn.logback.repository" level="DEBUG" />
</configuration>