日志级别有(从高到低):FATAL(致命),ERROR(错误),WARN(警告),INFO(信息),DEBUG(调试),TRACE(跟踪)或者 OFF(关闭),默认的日志配置在消息写入时将消息回显到控制台。默认情况下,将记录错误级别、警告级别和信息级别的消息
官网
logging.config=classpath:logback-spring.xml
logging.level.root=info
logging.level.web=info
logging.level.sql=debug
logging.level.xxx=debug
<configuration debug="false">
<springProperty scope="context" name="SERVER_NAME" source="server.servlet.application-display-name"/>
<springProperty scope="context" name="LOG_ROOT_LEVEL" source="logging.level.root"/>
<property name="LOG_HOME" value="${sys:catalina.base:-.}/output/logs"/>
<property name="CONSOLE_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5le) [%11(%.11t)] %cyan(%-50(%lo{50})) - %m%n"/>
<property name="FILE_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5le [%15(%.15t)] %-60(%lo{60}) - %m%n"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${CONSOLE_PATTERN}pattern>
encoder>
appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/${SERVER_NAME}.%d{yyyy-MM-dd}.%i.logFileNamePattern>
<MaxHistory>15MaxHistory>
<maxFileSize>100MBmaxFileSize>
rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${FILE_PATTERN}pattern>
encoder>
appender>
<appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERRORlevel>
<onMatch>ACCEPTonMatch>
<onMismatch>DENYonMismatch>
filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/dev/${SERVER_NAME}.%d{yyyy-MM-dd}.%i.logFileNamePattern>
<MaxHistory>15MaxHistory>
<maxFileSize>100MBmaxFileSize>
rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${FILE_PATTERN}pattern>
encoder>
appender>
<springProfile name="dev">
<root level="${LOG_ROOT_LEVEL}">
<appender-ref ref="STDOUT"/>
root>
springProfile>
<springProfile name="test|prod">
<root level="${LOG_ROOT_LEVEL}">
<appender-ref ref="FILE"/>
<appender-ref ref="FILE_ERROR"/>
root>
springProfile>
configuration>
注意:SpringBoot推荐我们使用带-spring后缀的 logback-spring.xml 扩展配置,因为默认的的logback.xml标准配置,Spring无法完全控制日志初始化。(spring扩展对springProfile节点的支持)
<configuration>
<property name="CONSOLE_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5le) [%11(%.11t)] %cyan(%-50(%lo{50})) - %m%n"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${CONSOLE_PATTERN}pattern>
encoder>
appender>
configuration>
<configuration debug="false">
<property name="LOG_HOME" value="${sys:catalina.base:-.}/output/logs"/>
<property name="CONSOLE_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5le) [%11(%.11t)] %cyan(%-50(%lo{50})) - %m%n"/>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/${SERVER_NAME}.%d{yyyy-MM-dd}.%i.logFileNamePattern>
<MaxHistory>15MaxHistory>
<maxFileSize>100MBmaxFileSize>
rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${FILE_PATTERN}pattern>
encoder>
appender>
<root level="INFO">
<appender-ref ref="FILE"/>
root>
configuration>
<configuration scan="true" scanPeriod="30 seconds" debug="false">
configuration/>
<property name="LOG_HOME" value="${sys:catalina.base:-.}/output/logs"/>
<springProperty scope="context" name="SERVER_NAME" source="server.servlet.application-display-name"/>
<property name="CONSOLE_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5le) [%11(%.11t)] %cyan(%-50(%lo{50})) - %m%n"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${CONSOLE_PATTERN}pattern>
encoder>
appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/${SERVER_NAME}.%d{yyyy-MM-dd}.%i.logFileNamePattern>
<MaxHistory>15MaxHistory>
<maxFileSize>100MBmaxFileSize>
rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${FILE_PATTERN}pattern>
encoder>
appender>
定义每行日志记录的格式,官网地址:https://logback.qos.ch/manual/layouts.html ,
常用变量别名(包括全称和简称)有:
变量名
%logger(简写:%c或%lo): 当前日志名称,如: Slf4jAndLogbackMain
%class(简写:%C): 日志调用所在类,如: com.dragon.study.log.Slf4jAndLogbackMain
%method(简写:%M): 日志所在方法,如: main
%caller: 日志调用位置,如:at com.dragon.study.log.Slf4jAndLogbackMain.main(Slf4jAndLogbackMain.java:15)
%thread(简写:%t): 日志调用所有线程序,如:main
%level(简写:%p或%le): 日志级别,如:INFO
%date(简写:%d): 日期,如: 2018-12-15 21:40:12,890
%msg(简写:%m): 日志记录内容
%exception(简写:%ex): 异常记录
宽度设置
%20logger:当字符数少于20个字符时,则左侧留空白;
%-20logger:当字符数少于20个字符时,则右侧留空白;
%.30logger:当字符数据大于30个时,则截断;
显示设置
%highligth:突出显示
%green(%red、%blue、%white):字体显示为指定颜色
{length}可指定长度,如%logger{36}
网络访问设置(依赖logger-access包)
%remoteIP(简写:%a):远程ip;
%localIP(简写:%A):本地ip;
%clientHost(简写:%h):远程主机名;
%localPort:本地端口;
%requestMethod(简写:%m):http请求方法;
%protocol(简写:%H):http请求协议;
%statusCode(简写:%s):http请求status code;
%requestURL(简写:%r):http请求地址;
%requestURI(简写:%U):http请求资源地址;
%queryString(简写:%q):http请求参数;
%server(简写:%v):服务器地址;
%elapsedTime(简写:%D):http请求处理的时间,单位是毫秒;
%elapsedSeconds(简写:%T):http请求处理的时间,单位是秒;
%date(简写:%t):日志记录时间;
%threadName(简写:%I):处理请求的线程名;
%reqAttribute{attributeName}:http请求attribute值;
%reqCookie{cookie}:http请求cookie值;
%reqContent:http请求体内容;
%fullRequest:http完整请求;
%responseContent:http响应;
%fullResponse:http完整响应;