Log4j是java日志包、是Apache的一个开放源代码项目
这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
三个主要部件组成:
- 记录器(Loggers):按照布局中指定的格式把日志信息写入一个或多个输出源
- 输出源(Appenders):可以是控制台、文本文件、xml文件或Socket,甚至还可以把信息写入到Windows事件日志或通过电子邮件发送(这都需要相应的类来处理)
- 布局(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");
}
}
运行结果: