热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Logback使用小结

1一定要使用slf4j的jar包,不要使用apachecommons的jar。否则滚动生成文件不生效,不滚动的时候却生效~~importorg.slf

1 一定要使用slf4j的jar包,不要使用apache commons的jar。否则滚动生成文件不生效,不滚动的时候却生效~~

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


2  举例子说吧

scan    属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。

scanPeriod   设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。

debug    当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。

contextName 标签   每个logger都关联到logger上下文,默认上下文名称为“default”。但可以使用设置成其他名字,用于区分不同应用程序的记录。一旦设置,不能修改。

[html] view plaincopyprint?
  1. <configuration scan&#61;"true" scanPeriod&#61;"60 seconds" debug&#61;"false">    
  2.       <contextName>myAppNamecontextName>    
  3.           
  4. configuration>  

myAppName


例子1

 

[html] view plaincopyprint?
  1. <configuration>  
  2.     <appender name&#61;"STDOUT" class&#61;"ch.qos.logback.core.ConsoleAppender">  
  3.           
  4.         <encoder>  
  5.             <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n  
  6.             pattern>  
  7.         encoder>  
  8.     appender>  
  9.   
  10.     <root level&#61;"INFO">  
  11.         <appender-ref ref&#61;"STDOUT" />  
  12.     root>  
  13. configuration>  

%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n

 

%logger{36} 表示logger名字最长36个字符&#xff0c;否则按照句点分割。

logger{length}输出日志的logger名&#xff0c;可有一个整形参数&#xff0c;功能是缩短logger名&#xff0c;设置为0表示只输入logger最右边。

Conversion specifierLogger nameResult
%loggermainPackage.sub.sample.BarmainPackage.sub.sample.Bar
%logger{0}mainPackage.sub.sample.BarBar
%logger{5}mainPackage.sub.sample.Barm.s.s.Bar
%logger{10}mainPackage.sub.sample.Barm.s.s.Bar
%logger{15}mainPackage.sub.sample.Barm.s.sample.Bar
%logger{16}mainPackage.sub.sample.Barm.sub.sample.Bar
%logger{26}mainPackage.sub.sample.BarmainPackage.sub.sample.Bar


%d{HH:mm:ss.SSS}输出日志的打印日志&#xff0c;模式语法与
java.text.SimpleDateFormat 兼容。看上去%d就已经够好了~~

 

Conversion PatternResult
%d2006-10-20 14:06:49,812
%date2006-10-20 14:06:49,812
%date{ISO8601}2006-10-20 14:06:49,812
%date{HH:mm:ss.SSS}14:06:49.812
%date{dd MMM yyyy ;HH:mm:ss.SSS}20 oct. 2006;14:06:49.812

%msg%n  其中msg表示打印输出的消息&#xff0c; %n表示换行

m / msg / message

输出应用程序提供的信息。

可选的格式修饰符位于“%”和转换符之间。第一个可选修饰符是左对齐 标志&#xff0c;符号是减号“-”&#xff1b;

接着是可选的最小宽度 修饰符&#xff0c;用十进制数表示。如果字符小于最小宽度&#xff0c;则左填充或右填充&#xff0c;默认是左填充&#xff08;即右对齐&#xff09;&#xff0c;填充符为空格。

如果字符大于最小宽度&#xff0c;字符永远不会被截断。

t / thread输出产生日志的线程名。

p / le / level

输出日志级别。


 

例子2

[html] view plaincopyprint?
  1. <appender name&#61;"MONITOR"  
  2.     class&#61;"ch.qos.logback.core.rolling.RollingFileAppender">  
  3.     <file>${jingwei.loggingRoot}/monitor.logfile>  
  4.   
  5.       
  6.       
  7.     <rollingPolicy class&#61;"ch.qos.logback.core.rolling.FixedWindowRollingPolicy">  
  8.         <fileNamePattern>${jingwei.loggingRoot}/monitor.%i.log.gz  
  9.         fileNamePattern>  
  10.           
  11.         <minIndex>1minIndex>  
  12.         <maxIndex>3maxIndex>  
  13.     rollingPolicy>  
  14.   
  15.       
  16.     <triggeringPolicy  
  17.         class&#61;"ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">  
  18.         <maxFileSize>100MBmaxFileSize>  
  19.     triggeringPolicy>  
  20.   
  21.       
  22.     <append>trueappend>  
  23.     <encoding>GBKencoding>  
  24.   
  25.       
  26.     <layout class&#61;"ch.qos.logback.classic.PatternLayout">  
  27.         <pattern>  
  28.                  
  29.                 %n%-4r [%d{yyyy-MM-dd HH:mm:ss}] - %X{method}  %-5level %logger{35} - %m%n 
  30.                 ]]>  
  31.         pattern>  
  32.     layout>  
  33. appender>  
  34.   
  35.   
  36. <logger name&#61;"com.taobao.jingwei.monitor">  
  37.     <level value&#61;"WARN" />  
  38.       
  39.     <appender-ref ref&#61;"MONITOR" />  
  40. logger>  

${jingwei.loggingRoot}/monitor.log${jingwei.loggingRoot}/monitor.%i.log.gz13100MBtrueGBK


 

logger中有一个additivity属性&#xff0c;作用在于 children-logger是否使用 rootLogger配置的appender进行输出。

false&#xff1a;表示只用当前logger的appender-ref。

true&#xff1a;表示当前logger的appender-ref和rootLogger的appender-ref都有效。


[html] view plaincopyprint?
  1.   
  2. <logger name&#61;"com.taobao.jingwei.monitor">  
  3.     <level value&#61;"WARN" />  
  4.       
  5.     <appender-ref ref&#61;"MONITOR" />  
  6. logger>  



这样logger名字匹配com.taobao.jingwei.monitor的信息就只在MONITOR的appender输出&#xff0c;而不会在root logger中输出了


推荐阅读
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • andr ... [详细]
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 本文详细介绍了 Flink 和 YARN 的交互机制。YARN 是 Hadoop 生态系统中的资源管理组件,类似于 Spark on YARN 的配置方式。我们将基于官方文档,深入探讨如何在 YARN 上部署和运行 Flink 任务。 ... [详细]
  • Struts与Spring框架的集成指南
    本文详细介绍了如何将Struts和Spring两个流行的Java Web开发框架进行整合,涵盖从环境配置到代码实现的具体步骤。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
author-avatar
本人xiao13
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有