logback.xml檔案配置
<?xml version="1.0" encoding="UTF-8"?><!-- Logback Configuration. --><configuration debug="true"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <target>System.out</target> <encoding>UTF-8</encoding> <filter class="com.alibaba.citrus.logconfig.logback.LevelRangeFilter"> <levelMax>INFO</levelMax> </filter> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern><![CDATA[ [%d{yyyy-MM-dd HH:mm:ss}] %-5level %logger{0} - %m%n ]]></pattern> </layout> </appender> <appender name="STDERR" class="ch.qos.logback.core.ConsoleAppender"> <target>System.err</target> <encoding>UTF-8</encoding> <filter class="com.alibaba.citrus.logconfig.logback.LevelRangeFilter"> <levelMin>WARN</levelMin> </filter> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern><![CDATA[[%d{yyyy-MM-dd HH:mm:ss} ] - %X{method} %X{requestURIWithQueryString} [ip=%X{remoteAddr}, ref=%X{referrer}, ua=%X{userAgent}, sid=%X{cookie.JSESSIONID}]%n %-5level %logger{35} - %m%n ]]></pattern> </layout> </appender> <!-- 組建記錄檔檔案 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--記錄檔輸出的檔案名稱 --> <file>${app.output}/logs/app.log</file> <!-- 固定數量的記錄檔,防止將磁碟佔滿 --> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>${app.output}/logs/app.%i.log </fileNamePattern> <minIndex>1</minIndex> <maxIndex>10</maxIndex> </rollingPolicy> <!--記錄檔最大的大小 --> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>500MB</MaxFileSize> </triggeringPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:層級從左顯示5個字元寬度%msg:日誌訊息,%n是分行符號 --> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-5level %logger{20} -%msg%n</pattern> </encoder> </appender> <appender name="thirdApiCallAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--記錄檔輸出的檔案名稱 --> <file>${app.output}/logs/third_api_call.log</file> <!-- 固定數量的記錄檔,防止將磁碟佔滿 --> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>${app.output}/logs/third_api_call.%i.log </fileNamePattern> <minIndex>1</minIndex> <maxIndex>10</maxIndex> </rollingPolicy> <!--記錄檔最大的大小 --> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>500MB</MaxFileSize> </triggeringPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:層級從左顯示5個字元寬度%msg:日誌訊息,%n是分行符號 --> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-5level %logger{20} -%msg%n</pattern> </encoder> </appender> <!-- redis日誌 --> <appender name="redisAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${app.output}/logs/redis.log</file> <!-- 固定數量的記錄檔,防止將磁碟佔滿 --> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>${app.output}/logs/redis.%i.log</fileNamePattern> <minIndex>1</minIndex> <maxIndex>10</maxIndex> </rollingPolicy> <!--記錄檔最大的大小 --> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>100MB</MaxFileSize> </triggeringPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:層級從左顯示5個字元寬度%msg:日誌訊息,%n是分行符號 --> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-5level %logger{20} -%msg%n</pattern> </encoder> </appender> <logger name="profiler" level="DEBUG" additivity="false"> <appender-ref ref="profilerAppender"/> <appender-ref ref="STDOUT"/> </logger> <logger name="thirdApiCall" level="DEBUG" additivity="false"> <appender-ref ref="thirdApiCallAppender"/> <appender-ref ref="STDOUT"/> </logger> <logger name="redisLogger" level="DEBUG" additivity="false"> <appender-ref ref="redisAppender"/> <appender-ref ref="STDOUT"/> </logger> <root> <level value="${app.logging.level}" /> <appender-ref ref="STDOUT" /> <appender-ref ref="STDERR" /> <appender-ref ref="FILE" /> </root></configuration>