Java 项目 服务器 日志配置-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6


最近 在搞一个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

 

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Java服务器