日志框架--Log4j(一)
2017-03-14 09:45
155 查看
日志框架的作用(干什么)
在程序运行过程中,验证传入的参数是否正确;在软件的稳定期内,记录用户的每一步操作;
为什么不直接用System.out.println()?
写着费劲,不能加入一些附加的东西;例如【日期】写还是不写,不能灵活控制。只能通过注释掉代码才能控制;
//System.out.println()
Log4j
介绍
Log4j是Apache的一个开源的项目。通过使用Log4j,可以控制日志信息输送的目的地有:控制台、文件、GUI组件、甚至是套接口服务器、NT事件记录器等;也可以控制日志的输出格式;通过第一每一条日志信息的级别,能够更加细致地控制日志的生成过程。是什么
一个开源的、轻量级的、用于日志管理的框架。有什么
Log4j三个重要的组件构成:日志信息的输出格式;
日志信息的优先级;
日志信息的输出目的地;
properties
每一行都是键值对,key=value;(key值须唯一)#代表注释
properties文件里,本身不支持中文(我们的eclipse装了propedit插件,可以支持中文转换)
Log4j.properties
# non-root loggers # log4j.rootLogger=debug,hello.File,hello.Console log4j.appender.hello.File=org.apache.log4j.DailyRollingFileAppender # 这是一个输出目的地,目的地是按天卷动的文件 # key都是可以用.分开的 # [log4都是给log4j用的].[appender(目的地)/logger(控制单元)本质] # appender [变量名]=对应log4j的appender类对象 # Appender hello.File=new org.apache.log4j.DailyRollingFileAppender(); log4j.appender.hello.File.file=palmpay.log # 相当于"hello.File"这个变量的setter # hello.File.setFile("palmpay.log"); log4j.appender.hello.File.DatePattern=.yyyy-MM-dd # hello.File.setDatePattern(".yyyy-MM-dd"); log4j.appender.hello.File.layout=org.apache.log4j.PatternLayout # Layout layout=new org.apche.log4j.PatternLayout(); log4j.appender.hello.File.layout.ConversionPattern=%d(HH:mm:ss,SSS) %5p (%C(1):%M) - %m%n # Layout layout.setConversionPattern("%d(HH:mm:ss,SSS) %5p (%C(1):%M) - %m%n"); #输出的目的地,输出到哪儿,Daily[按天]Rolling[滚动]File[文件]Appender[目的地] #今天的日志打印到palmay.log #之前每天的日志,各自打印到对应的天数的文件里 #日志输出的信息,[%m%n代表信息本身][%d(HH:mm:ss,SSS) %5p (%C(1):%M) 代表附件在信息之前的其它东西] #[%d(HH:mm:ss,SSS)--时间] #[%5p--级别] #[(%C(1):%M)--类、方法] log4j.appender.hello.Console=org.apache.log4j.ConsoleAppender log4j.appender.hello.Console.layout=org.apache.log4j.PatternLayout log4j.appender.hello.Console.layout.ConversionPattern=%d(HH:mm:ss,SSS) %5p (%C(1):%M) - %m%n #目的地和格式之间的关系,每个目的地各自制定各自的信息格式 log4j.logger.com.hello=debug,hello.File,hello.Console log4j.logger.com.hello.log4j=info,hello.File,hello.Console #logger,是控制日志输出的最小单元 # key的除"log4j.logger"后的剩余部分,是个包名(管理它和它的子包下的所有类) # value的部分=第一个是"级别",后面是对多个目的地的应用(使用逗号分开)
日志级别
Log4j有如下级别
OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL。 Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。
几个重要规则
级别的控制,就是只要大于等于指定的控制级别,就可以输出;如果有多个logger,都可以匹配输出,则每个logger都产生输出;而级别控制来源于路径最详细的logger;
###如何获得日志操作类
public class A{
private static Logger logger = Logger.getLogger(A.class);
}
代码示例:
package com.hello.log4j; import org.apache.log4j.Logger; /** * 1、如何取logger * 这个logger可以被几个log4j.logger管理 * 2、用什么样的级别打印 4000 * @author tianye * */ public class TestLog4j { //用类对象来取得logger,就相当于是全类名 private static final Logger logger = Logger.getLogger(TestLog4j.class); public static void main(String[] args) { logger.debug("debug"); logger.info("info"); logger.warn("warn"); logger.error("error"); } }
完整案例展示链接
github下载链接
完成案例源码下载链接
最后,谢谢支持,希望你可以通此篇小文对Log4j有一点点的收获。
相关文章推荐
- java日志框架log4j详细配置及与slf4j联合使用教程
- Java日志框架slf4j、jcl、jul、log4j1、log4j2、logback大总结
- Java日志框架slf4j、jcl、jul、log4j1、log4j2、logback大总结
- 自己写的日志框架--linkinLog4j--日志框架的必要性
- 自己写的日志框架--linkinLog4j--框架可配置+提性能
- 日志框架的使用配置 log4j
- java日志框架log4j详细配置及与slf4j联合使用教程
- 日志框架Log4j详解
- 自己写的日志框架--linkinLog4j--框架可配置+提性能
- SpringBoot项目中使用日志框架log4j——为什么使用日志(一)
- Logback、Log4J及slf4J日志框架分析对比及在Spring Boot中的使用
- 日志框架Log4j性能
- 日志输出框架Log4j使用
- bootstrap + angularjs + springmvc + mybatis框架之加载log4j日志
- Log4j配置失效导致spring等框架一直打印DEBUG级别的日志
- log4j 和 slf4j 日志框架
- 使用代码形式配置Log4J日志框架
- 日志框架之log4j学习总结
- 日志管理框架:Log4j工具封装类
- 新手看Java日志框架工具----log4j(二)