最近 在搞一个0-1的项目 就想把 服务器日志配置 记录一下
我们使用的是 单体微服务项目
首先你需要一个xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration><!--定义日志存放的位置--><springProperty scope="context" name="logPath" source="log.path" defaultValue="logs"/><springProperty scope="context" name="logMaxFileSize" source="log.maxFileSize" defaultValue="50MB"/><springProperty scope="context" name="logMaxHistory" source="log.maxHistory" defaultValue="45"/><springProperty scope="context" name="totalLogSizeCap" source="log.totalLogSizeCap" defaultValue="20GB"/><springProperty scope="context" name="errorLogSizeCap" source="log.errorLogSizeCap" defaultValue="5GB"/><!-- ****************************************************************************************** --><!-- ****************************** dev,uat环境在控制台打印日志 ************************************ --><!-- ****************************************************************************************** --><springProfile name="dev | uat | ksh | ysh"><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"><layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger Line:%-3L - %msg%n</pattern><!--<charset>utf-8</charset>--></layout></encoder></appender><root level="info"><appender-ref ref="STDOUT"/></root></springProfile><!-- ****************************************************************************************** --><!-- ********************** 非dev环境日志记录在文件 **************************** --><!-- ****************************************************************************************** --><!-- 日志记录器,日期滚动记录 --><springProfile name="dev"><appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在记录的日志文件的路径及文件名 --><file>${logPath}/log_error.log</file><!-- 日志记录器的滚动策略,按日期,按大小记录 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 归档的日志文件的路径,例如今天是2018-11-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 --><fileNamePattern>${logPath}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern><!-- 除按日志记录之外,还配置了日志文件不能超过50MB,若超过50MB,日志文件会以索引0开始,命名日志文件,例如log-error-2018-11-21.0.log --><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>${logMaxFileSize}</maxFileSize></timeBasedFileNamingAndTriggeringPolicy><maxHistory>${logMaxHistory}</maxHistory><totalSizeCap>${errorLogSizeCap}</totalSizeCap><cleanHistoryOnStart>true</cleanHistoryOnStart></rollingPolicy><!-- 追加方式记录日志 --><append>true</append><!-- 日志文件的格式 --><encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"><layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger Line:%-3L - %msg%n</pattern><!--<charset>utf-8</charset>--></layout></encoder><!-- 此日志文件只记录error级别的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>error</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- 日志记录器,日期滚动记录 --><appender name="FILE_ALL" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在记录的日志文件的路径及文件名 --><file>${logPath}/log_total.log</file><!-- 日志记录器的滚动策略,按日期,按大小记录 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 --><fileNamePattern>${logPath}/total/log-total-%d{yyyy-MM-dd}.%i.log</fileNamePattern><!-- 除按日志记录之外,还配置了日志文件不能超过50MB,若超过50MB,日志文件会以索引0开始,命名日志文件,例如log-error-2013-12-21.0.log --><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>${logMaxFileSize}</maxFileSize></timeBasedFileNamingAndTriggeringPolicy><maxHistory>${logMaxHistory}</maxHistory><totalSizeCap>${totalLogSizeCap}</totalSizeCap><cleanHistoryOnStart>true</cleanHistoryOnStart></rollingPolicy><!-- 追加方式记录日志 --><append>true</append><!-- 日志文件的格式 --><encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"><layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger Line:%-3L - %msg%n</pattern><!--<charset>utf-8</charset>--></layout></encoder></appender><root level="info"><appender-ref ref="FILE_ERROR"/><appender-ref ref="FILE_ALL"/></root></springProfile></configuration>
然后就是 pom文件里面添加上对应的依赖
<exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId></exclusion><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId></exclusion><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-nop</artifactId></exclusion><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-jdk14</artifactId></exclusion><exclusion><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId></exclusion><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions>
然后 yml 里面
logging.config=classpath:logback-spring.xml logging.level.root=info logging.level.com=debug logging.level.org.springframework.boot=ERRORlog.path=/Users/meiyifan/code/logs log.maxFileSize=50MB log.maxHistory=45log.totalLogSizeCap=20GB log.errorLogSizeCap=5GB systemLog.enable=true systemLogretentiondays=30
然后再服务器对应的创建 存储日志的文件 logs