您的位置:首页 > 科技 > 能源 > 沈阳妇科私立医院排名_雍泰建设公司官网_厦门网站建设_网络营销管理

沈阳妇科私立医院排名_雍泰建设公司官网_厦门网站建设_网络营销管理

2024/12/23 9:42:01 来源:https://blog.csdn.net/qq_32711309/article/details/143956431  浏览:    关键词:沈阳妇科私立医院排名_雍泰建设公司官网_厦门网站建设_网络营销管理
沈阳妇科私立医院排名_雍泰建设公司官网_厦门网站建设_网络营销管理

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级别,注意如果使用Springboot-stater-web引入方式则是info级别 这个可以自己测试下
下面是演示

//由于配置定义的是 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 debug="true">-->
<configuration ><logger name="simple.consoleAppender" level="INFO" /><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><!-- encoders are assigned the typech.qos.logback.classic.encoder.PatternLayoutEncoder by default --><encoder><pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><root level="debug"><appender-ref ref="STDOUT" /></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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com