最近 在搞一个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=ERROR log.path=/Users/meiyifan/code/logs log.maxFileSize=50MB log.maxHistory=45 log.totalLogSizeCap=20GB log.errorLogSizeCap=5GB systemLog.enable=true systemLogretentiondays=30
然后再服务器对应的创建 存储日志的文件 logs文章来源:https://www.toymoban.com/news/detail-730646.html
文章来源地址https://www.toymoban.com/news/detail-730646.html
到了这里,关于Java 项目 服务器 日志配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!