在java的世界裏面好像歷來只有log4j,由於它是在太有名氣了。說實話,我也沒以爲它那裏很差,至少在我本身的項目裏,它工做的好好的。可是主流有一種聲音,在慢慢的放棄它,最始做俑者是log4j的做者,也是logback的做者,他本身說的,維護愈來愈困難,索性開個新的。因而就是logback了。那麼,這樣說來,世界級的大牛的認知層面跟咱們確定不在一個世界內,索性跟隨吧。慢慢體會。java
從網上找資料看到不少包,各類說法也不同,可是從我本身實踐的效果看,引用一下這個包就能夠了。 <!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency>
這樣來講彷佛太簡單了,可是若是就是通常用用也確實如此,原本這就是一個配置的事情。彷佛都不用解釋什麼了。
引入包之後,在resources目錄中增長logback.xml,就這樣就能夠了。
你須要本身配置一點點內容。app
<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <contextName>logback</contextName> <property name="log.path" value="log/jwcwxds.log" /> <!--輸出到控制檯--> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd} %d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!--輸出到文件--> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>log/%d%d{yyyyMM}/jwcwxds.log.%d{yyyy-MM-dd}</fileNamePattern> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd} %d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="trace"> <appender-ref ref="console" /> <appender-ref ref="file" /> </root> <!--</logger>--> </configuration>
在須要用到日誌的類的屬性中增長 protected Logger logger = LoggerFactory.getLogger(this.getClass()); 在須要記錄日誌的位置使用 好比我要記錄三個參數和報錯信息 logger.error("XH={} XM={} CJ={} ERROR={}",XH,XM,CJ,e.getMessage());
運行後在包同級也就是System.getProperty("user.dir")這個目錄裏面會產生一個log文件。裏面記錄着咱們再stdout中顯示同樣的內容。this
並且能夠按月劃分目錄,按日歸檔日誌。debug