您好,登錄后才能下訂單哦!
這篇文章主要介紹“如何使用logback自定義deviceId,并根據(jù)deviceId生成各自的日志文件”,在日常操作中,相信很多人在如何使用logback自定義deviceId,并根據(jù)deviceId生成各自的日志文件問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何使用logback自定義deviceId,并根據(jù)deviceId生成各自的日志文件”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
<!--lombok --><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.16</version></dependency><!--sl4j --><dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency>
<?xml version="1.0" encoding="UTF-8"?><configuration debug="false" scan="true" scanPeriod="1 seconds"> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %level %logger{35} - %msg%n</pattern> </encoder> </appender> <appender name="siftInfo" class="ch.qos.logback.classic.sift.SiftingAppender"> <!--discriminator鑒別器,設(shè)置運(yùn)行時(shí)動(dòng)態(tài)屬性,siftingAppender根據(jù)這個(gè)屬性來輸出日志到不同文件 --> <discriminator> <key>deviceId</key> <defaultValue>unknown</defaultValue> </discriminator> <sift> <!--具體的寫日志appender,每一個(gè)deviceId創(chuàng)建一個(gè)文件--> <appender name="FILE-${deviceId}" class="ch.qos.logback.core.rolling.RollingFileAppender"> <append>true</append> <encoder charset="UTF-8"> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-5level %logger{35} - %msg%n</pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!--定義文件滾動(dòng)時(shí)的文件名的格式--><!-- <fileNamePattern>./logs/%d{yyyyMMdd}/deviceId-${deviceId}-%i.log</fileNamePattern>--> <fileNamePattern>D:/mylogs/%d{yyyyMMdd}/deviceId-${deviceId}-%i.log</fileNamePattern> <maxFileSize>500MB</maxFileSize> <maxHistory>60</maxHistory> <totalSizeCap>20GB</totalSizeCap> </rollingPolicy> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> </appender> </sift> </appender> <root level="info"> <appender-ref ref="console"/> <appender-ref ref="siftInfo"/> </root></configuration>
import org.apache.log4j.MDC;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class TestLogback {public static final Logger logger = LoggerFactory.getLogger(TestLogback.class); public void test1(){ MDC.put("deviceId", "deviceId3"); logger.debug("deviceId3 connected"); MDC.put("deviceId", "deviceId4"); logger.error("deviceId4 ---connected"); MDC.put("deviceId", "deviceId5"); logger.info("deviceId5 ---connected"); }public void test2(){ MDC.put("deviceId", "deviceId2"); logger.trace("deviceId2 connected"); }public static void main(String[] args) {final TestLogback testLogback = new TestLogback(); testLogback.test1(); testLogback.test2(); } }
注意點(diǎn):用log打印日志前需要拿到該設(shè)備的唯一標(biāo)識。重點(diǎn)在于 :
MDC.put("deviceId", "deviceId3"); //根據(jù)deviceId3 生成日志文件,有則追加數(shù)據(jù),沒有則創(chuàng)建該文件。 deviceId3就是打印的唯一標(biāo)識
logger.debug("deviceId3 connected"); // MDC.put("deviceId", "deviceId3"); 為第一步, logger.debug("deviceId3 connected"); 打印日志為第二bu
到此,關(guān)于“如何使用logback自定義deviceId,并根據(jù)deviceId生成各自的日志文件”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。