在大型的合作项目开发中,有时会要求将日志分模块记录,下面是我的一个log4j.properties配置文件:
#分模块存储
log4j.rootLogger=debug,appender1,appender2
log4j.logger.moduleA=info,appender1
log4j.logger.moduleB=warn,appender2
# 屏蔽rootlogger的配置
log4j.additivity.moduleA=false
log4j.additivity.moduleB=false
#输出到文件(这里默认为追加方式)
#每天产生一个文件
log4j.appender.appender1=org.apache.log4j.DailyRollingFileAppender
#设定输出的布局为模式布局
log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
## 输出DEBUG级别以上的日志
log4j.appender.appender1.Threshold = info
#设定输出的格式
log4j.appender.appender1.layout.ConversionPattern=[%p]%d{yyyy-MM-dd HH:mm:ss}:%m%n
#设定输出到那个文件
log4j.appender.appender1.File=log/log4j.log
#文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.appender2=org.apache.log4j.RollingFileAppender
log4j.appender.appender2.Threshold = info
log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.appender2.layout.ConversionPattern=[%p]%d{yyyy-MM-dd HH:mm:ss}:%m%n
log4j.appender.appender2.MaxFileSize=10MB
log4j.appender.appender2.File=log/error.log
log4j.appender.app=org.apache.log4j.DailyRollingFileAppender
----------------------------------------------------------------------
运行:
//分模块存储
Logger LoggerA = Logger.getLogger("moduleA");
Logger LoggerB = Logger.getLogger("moduleB");
LoggerA.debug("debug");
LoggerA.info("info");
LoggerA.warn("warn");
LoggerA.error("error");
LoggerB.debug("debug");
LoggerB.info("info");
LoggerB.warn("warn");
LoggerB.error("error");
----------------------------------------------------------------------
在这个配置中,注意:
1.log4j.logger.moduleA=info,appender1 表示:moduleA模块的输出级别最小为info。当然实际输出级别和appender1 的最小输出级别也有关。取他们两个的交集输出.
2.log4j.additivity.moduleA=false 因为在log4j.rootLogger=debug 设置了log4j的根 最小输出级别为debug。在moduleA 中只要求输出 info 级别以上的,那就要屏蔽 根的设置了。
分享到:
相关推荐
Log4j采用分模块输出不同日志文件的配置
**log4j-core-2.12.4.jar** 则是Log4j 2的核心实现模块,它实现了API模块中定义的接口,并负责实际的日志记录工作,包括日志事件的处理、输出格式化、日志存储以及性能优化等功能。此外,核心模块还包含了一些附加...
对于新项目,直接采用Log4j 2.x系列会是更好的选择,因为它提供了更好的性能、模块化设计以及持续的安全更新。而对那些仍在使用1.x版本的系统,应尽快评估升级的风险和收益,以避免可能的安全威胁。
文件中内容包括模块中某个类单独输出到一个日志文件中、模块中某个package单独输出到一个日志文件中、同一模块不同package输出到一个日志文件中三种情况下log4j.properties配置项配置事例、Java类中代码如何一致编写...
Log4j是一款广泛使用的Java日志记录框架,它允许开发者按照功能模块或特定需求记录应用程序运行过程中的事件信息。在“log4j按功能保存日志”的场景中,我们通常会利用Log4j的配置灵活性,将不同功能的日志分别写入...
《深入理解Log4j:基于1.2.17版本》 在软件开发过程中,日志记录是一项至关重要的任务,它能够帮助开发者在程序出现问题时迅速定位错误,同时也能记录系统运行状态,便于后期分析与优化。Log4j,作为Java世界中最...
Apache Log4j是Java平台上的一个著名日志记录框架,广泛应用于各种Java应用程序中,包括服务器、Web应用、企业级软件等。Log4j 1.2.16是该框架的一个版本,提供了丰富的日志功能,允许开发者灵活地控制日志信息的...
《log4j-1.2.17.jar及其配置文件详解》 在IT行业中,日志记录是一项至关重要的任务,它能帮助开发者追踪程序运行状况、定位错误和调试问题。Log4j,作为Apache软件基金会的一个开源项目,是Java平台上广泛使用的...
这包括检查项目的依赖树,查找可能包含Log4j2的jar包或者模块。 2. **深度分析**: 工具会深入分析代码,找出所有使用Log4j2的地方,特别是那些可能接收用户输入或网络数据的地方,这些地方是漏洞可能被触发的关键点...
这是Log4j的核心API模块,提供了日志记录的接口和类。开发者通过这些API来编写日志语句,如`Logger`类用于创建和管理日志记录器,`Level`类定义了不同的日志级别(如DEBUG, INFO, WARN, ERROR等)。API层不包含任何...
Log4j是一个广泛应用于Java环境的日志框架,而当我们谈论`android-logging-log4j-1.0.3.jar`时,它便是Log4j的一个版本,专门针对Android平台进行优化,使得在Android系统中可以方便地将日志信息写入SD卡。...
Log4j是一个广泛使用的Java日志框架,由Apache软件基金会开发并维护。它为应用程序提供了灵活的日志记录功能,使得开发者能够控制日志信息的输出格式、级别以及输出位置,从而便于调试、性能分析和系统监控。这个...
Log4j是一款广泛应用于Java平台的日志记录框架,它提供了灵活且强大的日志记录功能,使得开发者能够方便地控制日志信息的输出级别、格式以及目的地。本实例将深入探讨Log4j的基本使用方法和配置。 一、Log4j的核心...
在实际应用中,`log4j.properties`的配置应根据项目需求进行调整,比如根据日志级别过滤不必要的信息,根据业务模块划分日志文件,或者添加日志监控系统等。记住,良好的日志管理能够极大地提升开发效率和系统稳定性...
Log4j 2.11.0采用模块化设计,主要包括配置器(Configurator)、日志事件(LoggingEvent)、日志器(Logger)、布局(Layout)、Appender和过滤器(Filter)等核心组件。它们协同工作,实现日志的生成、格式化、...
Log4j2的API模块提供了基础的日志接口,如`Logger`, `Level`, `Appender`, `Layout`等。开发者通过这些接口来记录日志,而无需关心具体的实现细节。API的目的是为了保持与具体实现(如Core组件)的解耦,使得更换或...
《深入理解Log4j:基于1.2.15 API文档的解析》 在Java世界里,日志处理是不可或缺的一部分,而Log4j作为一款经典的日志框架,以其强大的功能和灵活的配置赢得了广大开发者们的青睐。本文将基于"Log4j 1.2.15"的API...
Log4j是一款广泛使用的日志记录框架,尤其在Java开发中极为常见。它是由Ceki Gülcü在2002年开发的,其版本 jakarta-log4j-1.2.8 提供了详细的文档。这个框架允许开发者以灵活的方式输出不同级别的日志信息,如...
由于其高度的可配置性和模块化设计,Log4j可以在不影响应用性能的情况下,提供高效的日志服务。此外,Log4j还支持通过插件系统扩展其功能,比如添加新的Appender或Layout。 总之,这个压缩包提供了一个完整的Log4j...
通常,SLF4J会提供一个桥接模块(如slf4j-log4j12.jar),这个桥接模块使得SLF4J调用能够被Log4j捕获并执行。 集成步骤如下: 1. 添加依赖:在项目的类路径中添加slf4j-api.jar和log4j的实现库(如log4j.jar或log4...