利用log4j进行日志输出
来源:互联网 发布:protobuf 数组 编辑:程序博客网 时间:2024/05/22 17:25
log4j是目前最为流行的一种日志记录工具。使用它可以方便我们进行日志记录,有助于程序排错等。项目中用到了,在此稍作总结。
log4j 简介
主要分为3部分: 1,Logger:记录器,决定什么日志信息应该被输出、什么日志信息应该被忽略。负责供客户端代码调用,执行debug(Object msg)、 info(Object msg)、warn(Object msg)、error(Object msg)等方法。 2,Appender:存放器,指定日志信息应该输出到什么地方,可以是控制台、文件、网络设备。 3,Layout:布局格式,指定日志信息的输出格式。
log4j 5中信息级别
Debug 调试信息 级别最低Info 一般信息Warn 警告信息Error 错误信息Fatal 严重错误信息 级别最高,错误最严重的
## log4j 基本配置详解 ##
以项目中的使用为例:
##此句为将等级为INFO的日志信息输出到stdout和R这两个目的地,stdout和R的定义在下面的代码,可以任意起名log4j.rootLogger=info,stdout,logfile##这里指stdout目标为控制台输出方式log4j.appender.stdout=org.apache.log4j.ConsoleAppender##控制台输出标准信息(System.err 错误信息)log4j.appender.stdout.Target=System.out##定义输出格式log4j.appender.stdout.layout=org.apache.log4j.PatternLayout##如果输出格式为PatternLayout时,必须指定具体的格式信息,每种参数代表不同的信息log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{HH:mm:ss SSS} - %m %l %n##输出的日志文件要根据最大限度来输出,达到最大限度时,会自动新建一个继续输出log4j.appender.logfile=org.apache.log4j.RollingFileAppender##默认的输出日志文件名为cclog.log,默认路径在程序根目录下log4j.appender.logfile.file=cclog.log##最大限度log4j.appender.logfile.MaxFileSize=2000KB##最多保存几个文件备份log4j.appender.logfile.MaxBackupIndex=20##这个指定输出格式log4j.appender.logfile.layout=org.apache.log4j.PatternLayout##指定输出格式中具体包含的信息log4j.appender.logfile.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} - %m (%c{1}:%L) %n
自定义日志文件配置
我们发现,经过上面的配置,输出的日志,全部会存在一个日志文件中。也就是,你输出的日志是没有进行分类的。这样很容易造成一个麻烦,那就是当我们在程序报错时,输出一个日志时,还必须去挨着日志文件去查询,到底这个错误在日志中输出信息是什么?这样就会消耗大量的时间。于是,log4j提供了自定义的日志输出。可以将你的特殊需要单独输出到一个日志文件中去。这样查询就会简便多了!
log4j.logger.ws.HCM037=INFO,ws.HCM037log4j.appender.ws.HCM037=org.apache.log4j.RollingFileAppenderlog4j.appender.ws.HCM037.file=HCM037.loglog4j.appender.ws.HCM037.MaxFileSize=2000KBlog4j.appender.ws.HCM037.MaxBackupIndex=20log4j.appender.ws.HCM037.layout=org.apache.log4j.PatternLayoutlog4j.appender.ws.HCM037.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} - %m (%c{1}:%L) %n
程序中代码:
/**首先在你要调用log输出日志的类中要进行声明log,这里和配置文件中的log4j.logger.ws.HCM037是对应的,这是log4j的层级关系实现的这里参数也可以指定某个类名等。*/private Logger log = Logger.getLogger("ws.HCM037");//然后进行调用就可以了try{ ....代码调用}catch(Exception e){ e.printStackTrace(); log.error("这里是错误信息"+e.getMessage,e); //或者log.info("错误信息");}
这样达到的效果是什么样儿呢?看图:
小结
以上是项目中log4j的一些简单的应用。除此之外,我们还可以利用log4j来自定义日志输出的类,这时候需要重写AppenderSkeleton里面的方法。同时,还可以利用配置文件进行参数传递等操作。功能很是强大的。具体请参考:
自定义log类
输出格式参数定义参考
1 0
- 利用log4j进行日志输出
- 使用log4j进行日志控制输出
- 利用log4j与sysLog 进行集中式日志管理
- JAVA学习笔记_利用slf4j进行log4j日志管理
- 用log4j输出日志
- Log4j日志输出详细
- 使用log4j输出日志
- Log4j输出日志教程
- log4j--分包输出日志
- Log4j日志输出详细
- Log4j日志输出详细
- log4j - 日志输出工具
- log4j 日志输出格式
- Log4j日志输出详细
- Log4j日志输出详细
- Log4j日志输出详细
- log4j 日志输出级别
- log4j无法输出日志
- Butterknife 简单使用
- struts2+json 配置
- sublime text3安装SublimeREPL,并配置python交互式终端快捷键
- Android:6.0运行时权限解析
- nginx页面加载不全或提示502bad gateway,nginx反向代理端口号丢失
- 利用log4j进行日志输出
- pam密码复杂度设置
- C 语言 实现的socket 通信
- 新博客
- UITabBarController简单的使用
- Maven学习总结——使用Maven构建多模块项目
- 线程数究竟设多少合理
- DL:卷积神经网络(CNN)的一些学习网址
- topLayoutGuide