ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

4.0 slf4j和log4j

2021-09-14 16:35:02  阅读:171  来源: 互联网

标签:4.0 log4j slf4j debug 日志 级别 appender


slf4j 简单日志门面(Simple Logging Facade for Java)不是具体的日志解决方案,它只服务于各种各样的日志系统 ,是一种接口方案

  在使用slf4j日志框架时 必须要有以下两个包   1. slf4j-api提供接口 只是一个日志标准并不提供实现   2.slf4j-log4j提供slf4j接口的具体实现   private final static Logger logger = LoggerFactory.getLogger(LogTest.class);   注:此时 Logger , LoggerFactory都来自slf4j-api接口,而在slf4j-logrj中具体实现     3.log4j包可以单独使用,也可以通过slf4j操作, log4j包原则上不是必须的,但是一般在使用slf4j框架是也加进去   private Logger logger = Logger.getLogger(Log4jTest.class);   注:当单独使用log4j包时,Logger来自log4j包     在使用slf4j日志框架时,Logger必须作为类的静态变量使用,即上面static不能省略。原因如下: 1 使用static修饰的属性是归这个类使用的 2 也就是说不论这个类实例化多少个,大家用的都是同一个static属性 3 log4j记录的是当前类的日志,不是每个实例的日志 4 所以只要有一个记录就可以了
  log4j日志级别 log4j定义了8个级别的log(除去OFF和ALL,可以说分为6个级别)因为OFF是全部关闭,ALL是全部放开 优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。 级别越高打起来越困难,只打等于或高于当前配置的日志级别的日志! A:off 最高等级,用于关闭所有日志记录。 B:fatal 指出每个严重的错误事件将会导致应用程序的退出。 C:error 指出虽然发生错误事件,但仍然不影响系统的继续运行。 D:warm 表明会出现潜在的错误情形。 E:info 一般和在粗粒度级别上,强调应用程序的运行全程。 F:debug 一般用于细粒度级别上,对调试应用程序非常有帮助。 G:all 最低等级,用于打开所有日志记录。
  配置文件 log4j.properties 或log4j.xml等等 是log4j的核心 打出几种文件,何种级别,何种方式打出等等一些列配置。。。   log4j.properties解说: log4j.rootLogger = DEBUG,stdout,D,E   # 配置日志信息输出目的地 log4j.appender.stdout = org.apache.log4j.ConsoleAppender # Target是输出目的地的目标 log4j.appender.stdout.Target = System.out # 指定日志消息的输出最低层次 log4j.appender.stdout.Threshold = INFO # 定义名为stdout的输出端的layout类型 log4j.appender.stdout.layout = org.apache.log4j.PatternLayout # 如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss} %l%m%n   # 名字为D的对应日志处理 log4j.appender.D = org.apache.log4j.DailyRollingFileAppender # File是输出目的地的文件名 log4j.appender.D.File = log\\app_debug.log #绝对路径写法 E:\\IdeaProjects\\studyDemo\\log4j\\log\\app_debug.log #false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容 log4j.appender.D.Append = true log4j.appender.D.Threshold = DEBUG log4j.appender.D.layout = org.apache.log4j.TTCCLayout
  #E配置类似D,级别为ERROR   # 首行必须写这个log4j.rootLogger DEBUG这里代表能打日志的最细粒度,stdout是配置控制台输出日志,D,E 分别代表一种日志打印方式 因为控制台定义了日志级别为INfO,那么如果代码中用debug级别的日志 如:logger.debug("this is a debug log"); 将不会打印到控制台   D模式中级别为DEBUG,则代码中的debug,info,warn,error级别的日志都会打印(高于或等于DEBUG级别)   D模式中级别为ERROR,则代码中的debug,info,warn将不会打印,只打印error级别的日志(只有error是,其他都比ERROR级别低)   实例见studyDemo/case/log4j        

标签:4.0,log4j,slf4j,debug,日志,级别,appender
来源: https://www.cnblogs.com/zl-programmer/p/15268166.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有