logback:root和logger


root可以理解為一個根節點,而其他的logger都可以看做root的子節點

所以默認root配置的appender屬性logger都是使用的,如果不想使用可以logger定義時增加屬性additivity="false"

ps:

<logger name="net.jy.redis.controller.logback.LogbackController" level="warn" additivity="false">
<appender-ref ref="stdout"/>
</logger>

 

因為上述關系,在class類使用getLogger("name/class")引入logger時,如果"name/class"未在配置文件中找到,則默認使用root配置

如果匹配到"name/class",則使用匹配到的appender配置的輸出,同時可自行選擇是否關閉root配置的appender輸出

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

在程序中經常使用

LoggerFactory.getLogger(Test.class);
其實這種最終轉換的logger名成就是Test所在包路徑+Test。logback會以這種名稱在logback.xml中找相匹配的logger

ps:
package net.jy.redis.controller.logback;

public class LogbackController {
 
private final static Logger logger = LoggerFactory.getLogger(LogbackController.class);

此處代碼省略。。。
}

logback.xml
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">


<!-- 定義日志格式-->
<encoder>

<pattern>
%d[%level]%M:%m%n
</pattern>
</encoder>

</appender>
 
<logger name="net.jy.redis.controller.logback.LogbackController" level="warn" additivity="false">
<appender-ref ref="stdout"/>
</logger>

此時日志輸出的內容就是以stdout的appender格式輸出
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM