北京模板网站建设,太原网站建设托管,wordpress网站迁移教程,重庆建设工程网站文章目录 1. 什么是logback2. logback的日志级别3. 日志级别的层级4. logback配置文件4.1 logger标签4.2 root标签4.3 appender标签4.4 filter标签4.5 encoder标签 5. 整体演示5.1 配置文件5.2 运行结果 1. 什么是logback
Logback是一个用于Java应用程序的日志框架#xff0c… 文章目录 1. 什么是logback2. logback的日志级别3. 日志级别的层级4. logback配置文件4.1 logger标签4.2 root标签4.3 appender标签4.4 filter标签4.5 encoder标签 5. 整体演示5.1 配置文件5.2 运行结果 1. 什么是logback
Logback是一个用于Java应用程序的日志框架它由log4j框架的创始人Ceki Gülcü开发。logback是log4j框架的继承者和改进版并提供了更好的性能、可扩展性和灵活性。与Log4j相比Logback提供了更快的速度和更低的内存占用这使得它成为大型企业级应用程序的理想选择。
Logback包括三个模块logback-core、logback-classic和logback-access。 logback-core提供了通用的日志记录功能logback-classic提供了与SLF4J API和log4j API兼容的日志记录功能logback-access提供了HTTP访问日志的功能。 同时Logback还支持异步日志记录、多线程环境下的高性能、动态配置等特性使得它成为Java应用程序中广泛使用的日志框架之一。
2. logback的日志级别
Logger有五个日志级别分别是TRACE、DEBUG、INFO、WARN、ERROR 这五个级别优先级为TRACEDEBUGINFOWARNERROR
在打印日志的时候只会打印当前日志级别高于或者等于当前日志级别的日志信息。例如当前日志级别为INFO那么只会记录日志级别为INFO、WARN、ERROR的日志信息。
查看springboot项目的日志级别使用下面代码进行测试。
Service
public class LogTest {private static final Logger logger LoggerFactory.getLogger(LogTest.class);public void test() {logger.trace(trace);logger.debug(debug);logger.info(info);logger.warn(warn);logger.error(error);}
}测试代码
SpringBootTest
class LogbackApplicationTests {Resourceprivate LogTest logTest;Testvoid testqwe() {logTest.test();}
}测试结果 所以SpringBoot项目中logback默认日志级别是INFO
3. 日志级别的层级
一般日志的最高层级就是root。例如现在创建一个logger是com.example.logback下的logger结构如下。 这里的日志级别如果没有指定也会继承父类。
4. logback配置文件
logback配置文件一般在springboot项目的src/main/resources目录下创建名为logback-spring.xml的文件
配置文件基本结构如下图
4.1 logger标签
logger就是日志记录器用来控制要输出哪些日志记录语句对日志信息进行级别限制。
有level属性、name属性、additivity属性其中name属性必须要写指定到哪一个类或者哪一个包additivity表示是否向上一层传递打印信息默认为true。可以包含 appender-ref 元素 使用示例
configurationlogger levelERROR namecom.example.testlog.LogTest additivityfalseappender-ref refSTDOUT/appender-ref/logger
/configuration4.2 root标签
root标签指定最基础的的日志输出级别它只有一个level属性可以包含 appender-ref 元素。 level属性可以选择ALL、TRACE、DEBUG、INFO、WARN、ERROR、NULL、OFF、INHERITED 使用示例
configurationroot leveldebugappender-ref refSTDOUT/appender-ref/root
/configuration4.3 appender标签
appender就是附加器日志记录器会将输出的任务交给附加器完成不同的附加器会将日志输出到不同的地方例如控制台、文件、网络等 几个常见的附加器 控制台附加器ch.qos.logback.core.ConsoleAppender文件附加器ch.qos.logback.core.FileAppender滚动文件附加器ch.qos.logback.core.rolling.RollingFileAppender 属性有name、classclass用来指定附加器name来表示当前附件器的名字。其他需要指定附件器的标签可以通过appender-ref标签中的ref来指定。可以包含encoder元素、fileter元素等
使用示例
configurationappender nameSTDOUT classch.qos.logback.core.ConsoleAppenderencoderpattern%d{HH:mm:ss.SSS} [%-5level] %logger{36} - %msg%n/pattern/encoder/appender
/configuration4.4 filter标签
filter是过滤器过滤器是附件器的一个组件它是用于判断附件器是否输出日志的。一个附件器可以包含多个过滤器。 过滤器只能有三个值DENY、NEUTRAL、ACCEPT。 DENY是不输出日志 NEUTRAL是不决定是否输出日志 ACCEPT是输出日志。
可以有三个元素level元素、onMatch元素、onMismatch元素。level设置过滤级别 onMatch用于配置符合过滤条件的操作 onMismatch用于配置不符合过滤条件的操作。 使用示例
configurationappender nameSTDOUT classch.qos.logback.core.ConsoleAppenderfilterlevelinfo/levelonMatchDENY/onMatchonMismatchACCEPT/onMismatch/filterencoderpattern%d{HH:mm:ss.SSS} [%-5level] %logger{36} - %msg%n/pattern/encoder/appender
/configuration4.5 encoder标签
encoder最主要的就是pattern标签用于控制输出日志的格式 %d: 表示日期 %-5level日志级别 %thread表示线程名 %logger输出日志的类名 logger{length}对输出日志的类名缩写展示 %msg日志输出内容 %n换行符 -左对齐 使用示例
encoderpattern%d{HH:mm:ss.SSS} [%-5level] %logger{36} - %msg%n/pattern
/encoder5. 整体演示
5.1 配置文件
?xml version1.0 encodingUTF-8?
configuration xmlnshttp://ch.qos.logback/xml/ns/logbackxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://ch.qos.logback/xml/ns/logbackhttps://raw.githubusercontent.com/enricopulatzo/logback-XSD/master/src/main/xsd/logback.xsdappender nameSTDOUT classch.qos.logback.core.ConsoleAppenderencoderpattern%d{HH:mm:ss.SSS} [%-5level] %logger{36} - %msg%n/pattern/encoder/appenderappender nameFILE classch.qos.logback.core.FileAppenderfileE:/workspace/logback/logfile.txt/fileappendtrue/appendencoderpattern%d{HH:mm:ss.SSS} [%-5level] %logger{36} - %msg%n/pattern/encoder/appenderroot levelinfoappender-ref refSTDOUT//rootlogger leveltrace namecom.example.testlog.LogTest additivityfalseappender-ref refSTDOUT/appender-ref refFILE//logger/configuration5.2 运行结果
控制台打印的信息
文件夹输出的信息