問題:但願將訂單錯誤日誌輸出到特定日誌文件,方便查看,避免與其餘日誌混在一塊html
解決思路:經過logback配置輸出文件,使用logger輸出日誌java
解決辦法:spring
配置:【logback-spring.xml】app
<!-- 定義訂單異常日誌輸出文件 目的:但願提交訂單出錯信息可單獨輸出到指定日誌文件,方便查看 --> <appender name="ERROR_ORDER_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <File>log/food/error-order.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>log/food/error-order-%d{yyyyMMdd}.log.%i</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>50MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <maxHistory>2</maxHistory> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n </Pattern> </layout> </appender> <!-- 定義logger名稱,指定日誌輸出文件 使用方式: // 獲取logger Logger logger = LoggerFactory.getLogger("ERROR_ORDER"); // 輸出日誌 logger.error("====error"); --> <logger name="ERROR_ORDER" additivity="false"> <appender-ref ref="ERROR_ORDER_FILE"/> </logger>
測試代碼dom
/** * 測試order異常日誌輸出 * order相關日誌輸出到特定文件 * Created by William on 2017/12/17. */ @RunWith(SpringRunner.class) @SpringBootTest public class OrderLoggerTest { private Logger logger = LoggerFactory.getLogger("ERROR_ORDER"); [@Before](https://my.oschina.net/u/3870904) public void setUp() { } [@Test](https://my.oschina.net/azibug) public void testAll() { logger.info("====info"); logger.warn("====warn"); logger.error("====error"); } } <!-- 定義訂單異常日誌輸出文件 目的:但願提交訂單出錯信息可單獨輸出到指定日誌文件,方便查看 --> <appender name="ERROR_ORDER_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <File>log/food/error-order.log</File> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>log/food/error-order-%d{yyyyMMdd}.log.%i</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>50MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <maxHistory>2</maxHistory> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n </Pattern> </layout> </appender> <!-- 定義logger名稱,指定日誌輸出文件 使用方式: // 獲取logger Logger logger = LoggerFactory.getLogger("ERROR_ORDER"); // 輸出日誌 logger.error("====error"); --> <logger name="ERROR_ORDER" additivity="false"> <appender-ref ref="ERROR_ORDER_FILE"/> </logger>
執行效果測試
解決辦法總比問題多,只要去尋找就會有答案.net