Log4j日志学习

来源:互联网 发布:摄像机内存卡数据恢复 编辑:程序博客网 时间:2024/06/07 13:04

Log4j是java日志包、是Apache的一个开放源代码项目

这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

三个主要部件组成:

  1. 记录器(Loggers):按照布局中指定的格式把日志信息写入一个或多个输出源
  2. 输出源(Appenders):可以是控制台、文本文件、xml文件或Socket,甚至还可以把信息写入到Windows事件日志或通过电子邮件发送(这都需要相应的类来处理)
  3. 布局(Logouts):所以集成Layout类的类定义了日志信息的布局,所谓布局就是日志信息的格式

日志级别:

  • FATAL:输出致命错误级别的调试信息
  • ERROR:输出错误级别的调试信息
  • WARN:输出警告级别的调试信息
  • INFO:输出提示级别的调试信息
  • DEBUG:输出普通调试信息

级别比较:(右边比左边高)
DEBUG《INFO《WARN《ERROR《FATAL

优点:
1、自动生成并输出log信息
2、log信息可以输出到不同的地方(控制台、文件、日志服务器等等)以备查看分析
3、除了在开发过程中发挥它的作用外,一个功能足够强大的日志记录开发包能当做一个审计工具(audit tool)使用

缺点:
因为日志信息嵌入到java代码中,所以运行的时候,对运行效率有一定的影响
日志代码必然要占用资源,而日志多有IO操作,速度可能会教慢
它影响了程序运行的速度,增加了代码的开销,增加了许多无谓的输出

建议:发布阶段尽量关闭不必要的调试信息日志,以提高程序运行效率。

Log4J基本配置文件:

这里写图片描述
DEBUG:开发时,更改其他信息,减少内存
stout:输出位置,控制台
logfile:输出为文件信息
这里写图片描述

这里写图片描述

如何使用日志呢?

public class Log4jTest {    public static void main(String[] args) {        //加载log4j配置文件        PropertyConfigurator.configure(ClassLoader.getSystemResource("log4j.properties"));        //获取Log4j日志记录器实例        Logger logger=Logger.getRootLogger();        //写日志操作(方式一)        logger.debug("这是DEBUG日志");        //写日志操作(方式二)        logger.log(Priority.DEBUG, "这是另一种DEBUG");    }}

运行结果:
这里写图片描述