1.引入库
代码如下(示例):
import org.slf4j.LoggerFactory;
2.日志记录
代码如下(示例):
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
//记录日志
logger.info("用户登录成功");
//记录错误日志
logger.error("getUserInfo 异常【{}】", e);
3.application.yml 配置
代码如下(示例):
#### logback 配置 #####
logging:
config: classpath:logback-spring.xml
4.logback-spring.xml
代码如下(示例):
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<contextName>yuqzbeacons-system</contextName>
<springProperty scope="context" name="app.name" source="spring.application.name"
defaultValue="yuqzcas"/>
<springProperty scope="context" name="server.port" source="server.port"
defaultValue=""/>
<property name="log.path" value="logs/busi" />
<property name="console.pattern"
value="%d{YYYY-MM-dd HH:mm:ss} %property{app.name} [%thread] %-5level %logger{36}[%L] [TxId : %X{PtxId} , SpanId : %X{PspanId}]- %msg%n" />
<property name="file.pattern"
value="%d{YYYY-MM-dd HH:mm:ss} %property{app.name} [%thread] %-5level %logger{36}[%L] [TxId : %X{PtxId} , SpanId : %X{PspanId}]- %msg%n" />
<!--输出到控制台-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${
console.pattern}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<!--输出到文件-->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${
log.path}/${
app.name}-info-${
server.port}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${
log.path}/${
app.name}-info-${
server.port}.log.%i</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<layout>
<pattern>${
file.pattern}</pattern>
</layout>
</appender>
<appender name="file-error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
<file>${
log.path}/${
app.name}-error-${
server.port}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${
log.path}/${
app.name}-error-${
server.port}.log.%i</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100MB</maxFileSize>
</triggeringPolicy>
<layout>
<pattern>${
file.pattern}</pattern>
</layout>
</appender>
<root level= "debug" >
<appender-ref ref="file-error" />
<appender-ref ref="file"/>
<appender-ref ref="console"/>
</root>
<springProfile name="dev" ><!-- 开发环境. -->
<root level= "info" >
<appender-ref ref="file-error" />
<appender-ref ref="file"/>
</root>
<logger name="springfox.documentation.spring.web.readers.operation" level="error"></logger>
<logger name="com.yuqzcrm.yuqzbeacons.system.log" level="error"></logger>
<logger name="com.yuqzcrm.yuqzcas" level="info" ></logger>
</springProfile>
<springProfile name="test"><!-- 测试环境. -->
<root level= "info" >
<appender-ref ref="file-error" />
<appender-ref ref="file"/>
</root>
</springProfile>
<springProfile name="prod"><!-- 生产环境. -->
<root level= "error" >
<appender-ref ref="file-error" />
<appender-ref ref="file"/>
</root>
<logger name="com.yuqzcrm.yuqzcas" level="info" >
</logger>
</springProfile>
</configuration>
总结
后端开发必备。