集团网站建设服务公司,宝塔wordpress伪静态,河北衡水网站建设,宁波seo在线优化公司logback 三大模块
记录器#xff08;Logger#xff09;、追加器#xff08;Appender#xff09;和布局#xff08;Layout#xff09;
配置文件外层最基本的标签如图示
xml中定义的就是这个三个东西下面进入学习
包引入参考springboot 官方文档 Logging :: Spring Boo…logback 三大模块
记录器Logger、追加器Appender和布局Layout
配置文件外层最基本的标签如图示
xml中定义的就是这个三个东西下面进入学习
包引入参考springboot 官方文档 Logging :: Spring Boot 我用的是springboot项目进行学习的所以仅仅导入spring-boot-starter-web一个依赖就行它默认使用的就是slf4j作为日志接口门面使用logback作为默认接口实现如图示 1.日志等级划分
1.基础输出
具体详情请参考官方文档Chapter 2: Architecture
log等级划分为 trace debug info warn error 假设log定义为info时候打印日志如果小于info那么日志不会进行输出样例如下 //由于配置定义的是 info 集别 根据 集别优先级 所以不会打印 trace和debug//trace debug info warn errorch.qos.logback.classic.Logger logger (ch.qos.logback.classic.Logger)LoggerFactory.getLogger(simple.consoleAppender);GetMapping(/simpleConsoleAppender)public String index() {logger.trace(simple.consoleAppender [ trace ] hello world );logger.debug(simple.consoleAppender [ debug ] hello world );logger.info(simple.consoleAppender [ info ] hello world );logger.warn(simple.consoleAppender [ warn ] hello world );logger.error(simple.consoleAppender [ error ] hello world );//return index;} 2.父子关系演示
关于日志还有父子关系的结构可以认为就是java类父子关系假设定义日志名称为com.group.order.service那么logback 就会创建关系为root-com-group-order-service 的5种日志name。如果你用的是com.group 输出的日志那么就会向上依次查找如果都没有定义那么使用默认root级别level默认为debug级别下面是演示
//由于配置定义的是 info 集别 根据 集别优先级 所以不会打印 trace和debug//trace debug info warn errorch.qos.logback.classic.Logger logger (ch.qos.logback.classic.Logger)LoggerFactory.getLogger(simple.consoleAppender);ch.qos.logback.classic.Logger loggerSimple (ch.qos.logback.classic.Logger)LoggerFactory.getLogger(simple);ch.qos.logback.classic.Logger rootLogger (ch.qos.logback.classic.Logger)LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);GetMapping(/simpleConsoleAppender)public String index() {
//定义的info级别logger.trace(simple.consoleAppender [ trace ] hello world );logger.debug(simple.consoleAppender [ debug ] hello world );logger.info(simple.consoleAppender [ info ] hello world );logger.warn(simple.consoleAppender [ warn ] hello world );logger.error(simple.consoleAppender [ error ] hello world );//
//未定义的simple日志 会自动向上查询level级别loggerSimple.trace(loggerSimple.consoleAppender [ trace ] hello world );loggerSimple.debug(loggerSimple.consoleAppender [ debug ] hello world );loggerSimple.info(loggerSimple.consoleAppender [ info ] hello world );loggerSimple.warn(loggerSimple.consoleAppender [ warn ] hello world );loggerSimple.error(loggerSimple.consoleAppender [ error ] hello world );//
//打印root 的默认集别System.out.println(root level rootLogger.getEffectiveLevel());//return index;} 以上demo的xml配置如下 spring-logback.xml
!--configuration debugtrue--
configuration logger namesimple.consoleAppender levelINFO /appender nameSTDOUT classch.qos.logback.core.ConsoleAppender!-- encoders are assigned the typech.qos.logback.classic.encoder.PatternLayoutEncoder by default --encoderpattern%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n/pattern/encoder/appenderroot leveldebugappender-ref refSTDOUT //root/configuration 2.log xml 定义
1.最简单的输出定义
参考上面xml定义。记录器Logger、追加器Appender 就是上面的logger标签和appender标签 logger主要就是两个属性日志名称name和日志级别level
2.Appender分析
顶级接口Appender两个实现类
这里主要分析UnsynchronizedAppenderBase因为后续主要围绕这几个实现类来做日志配置 主要使用的就是下面这些
ConsoleAppender 控制台打印日志输出Chapter 4: Appenders WARNING Please note the console is comparatively slow, even very slow. You should avoid logging to the console in production, especially in high volume systems. 警告请注意控制台相对较慢甚至非常慢。在生产环境中尤其是在高流量系统中应避免向控制台输出日志。
FileAppender 文件日志输出第 4 章附加程序
RollingFileAppender 可备份滚动日志文件 第 4 章附加程序 个人学习视频记录 结合官方文档自学logback_哔哩哔哩_bilibili