`
zuzong
  • 浏览: 115733 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Log4j配置文件XML方式和按包路径分开输出日志

    博客分类:
  • java
阅读更多
使用Log4j,则推荐用XML来配置属性参数,优点是打印输出更灵活,更加易控,可以按包路径、日志级别分开输出,可以根据具体需求过滤不需要的日志信息。

详细的配置参数可以参考一下几个帖子:
http://leonandjava.iteye.com/blog/293525
http://blog.csdn.net/azheng270/archive/2008/03/12/2173430.aspx

web.xml加载
<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>/WEB-INF/log4j.xml</param-value>
		 <!-- 
		 <param-value>/WEB-INF/log4j.properties</param-value>
		 -->
	</context-param>


log4j.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

<!-- 控制台输出 -->
<appender name="cmd" class="org.apache.log4j.ConsoleAppender">
	<param name="Encoding" value="GBK" />
	<param name="Threshold" value="debug" />
	<param name="Target" value="System.out" />
	<layout class="org.apache.log4j.PatternLayout">
		<param name="ConversionPattern" value="%d [%t] %-5p %c %x - %m%n" />
	</layout>
	<!--
	<filter class="org.apache.log4j.varia.LevelRangeFilter">
		<param name="levelMin" value="DEBUG" />
		<param name="levelMax" value="DEBUG" />
	</filter>
	<filter class="org.apache.log4j.varia.StringMatchFilter">
		<param name="StringToMatch" value="需要过滤的信息片段" />
		<param name="AcceptOnMatch" value="false" />
	</filter>
	<filter class="org.apache.log4j.varia.StringMatchFilter">
		<param name="StringToMatch" value="需要过滤的信息片段" />
		<param name="AcceptOnMatch" value="false" />
	</filter>
	 -->
</appender>

<!-- 文件输出 -->
<appender name="file" class="org.apache.log4j.RollingFileAppender">
	<param name="File" value="../webapps/aaa/WEB-INF/logs/log.log" />
	<param name="Encoding" value="UTF-8" />
	<param name="Threshold" value="debug" />
	<param name="Append" value="true" />
	<param name="MaxFileSize" value="500kb" />
	<layout class="org.apache.log4j.PatternLayout">
		<param name="ConversionPattern"
			value="%-d{yyyy-MM-dd HH:mm:ss} [%t] %p %c %x - %m%n" />
	</layout>
</appender>

<!-- 针对任务处理程序的日志文件输出 -->
<appender name="taskFile" class="org.apache.log4j.RollingFileAppender">
	<param name="File" value="../webapps/aaa/WEB-INF/logs/task-log.log" />
	<param name="Encoding" value="UTF-8" />
	<param name="Threshold" value="debug" />
	<param name="Append" value="true" />
	<param name="MaxFileSize" value="500kb" />
	<layout class="org.apache.log4j.PatternLayout">
		<param name="ConversionPattern"
			value="%-d{yyyy-MM-dd HH:mm:ss} [%t] %p %c %x - %m%n" />
	</layout>
</appender>

<!-- 任务处理程序,设置输出的方式 -->
<logger name="com.ecard.task" additivity="false">
   <level value="debug" />
   <appender-ref ref="cmd" />
   <appender-ref ref="taskFile" />
</logger>

<!-- 全局输出的方式 -->
<root>
	<priority value="debug" />
	<appender-ref ref="cmd" />
	<appender-ref ref="file" />
	<appender-ref ref="task-file" />
</root>

</log4j:configuration>



logger的additivity
表示,子Logger是否继承父Logger的输出源(appender),默认为true,即子Logger会继承父Logger的appender,在父Logger的日志输出中,会出现子Logger的日志信息,设为false,则各自输出各自的。

filter说明
过滤器包括:LogLevelMatchFilter、LogLevelRangeFilter、
和StringMatchFilter

对LogLevelMatchFilter来说,过滤条件包括LogLevelToMatch和AcceptOnMatch(true|false), 只有
当log信息的LogLevel值与LogLevelToMatch相同,且AcceptOnMatch为true时才会匹配。

LogLevelRangeFilter来说,过滤条件包括LogLevelMin、LogLevelMax和AcceptOnMatch,只有当log信息
的LogLevel在LogLevelMin、LogLevelMax之间同时AcceptOnMatch为true时才会匹配。

对StringMatchFilter来说,过滤条件包括StringToMatch和AcceptOnMatch,只有当log信息的LogLevel值
与StringToMatch对应的LogLevel值与相同, 且AcceptOnMatch为true时会匹配。

附:Log4j XML DTD 说明文章
http://wiki.apache.org/logging-log4j/Log4jXmlFormat
log4j.dtd文件,可以在\org\apache\log4j\xml\中找到,uri的没找到,log4j官网doc里,把这个文件的链接删了
1
0
分享到:
评论

相关推荐

    log4j2在项目中的配置,对不同级别的日志进行不同文件的存储

    关键在于Log4j2的配置文件,这里是一个名为`log4j2.xml`的XML文件,它应该放在项目的src目录下。配置文件控制日志的输出行为,包括日志级别、输出目的地、格式等。以下是一个示例配置: ```xml &lt;?xml version="1.0...

    log4j输出多个自定义路径的日志文件小例子

    要实现输出多个自定义路径的日志文件,我们需要在Log4j的配置文件(通常是`log4j.properties`或`log4j.xml`)中定义多个Appender。Appender是Log4j中负责将日志信息输出到指定目的地的组件,例如文件、控制台、网络...

    log4net 配置 根据日期生成 文件 根据 分类 (INFO、ERROR) 生成文件

    通过上述配置,我们可以实现按日期和日志级别分开记录日志的功能。这种配置方式不仅便于日志管理,也有助于提高问题排查效率。对于大型系统而言,合理的日志配置能够显著提升系统的可维护性和可扩展性。

    log4j配置详解总结资料

    `LOG4J配置全接触.htm`和`log4j属性含义.htm`则可能深入解释了Log4j配置文件中各种属性的含义和用法,帮助读者全面理解和掌握Log4j的配置。 总的来说,这些资料旨在帮助开发者更有效地利用Log4j进行日志管理,提高...

    log4j1.2.91

    2. **配置**:Log4j的配置文件通常是`log4j.properties`或`log4j.xml`,其中定义了日志的级别、输出位置、格式等。 例如,以下是一个简单的配置示例: ``` log4j.rootLogger=DEBUG, FILE log4j.appender.FILE=...

    Log4j不同模块输出到不同的文件中

    Log4j是一个广泛使用的日志记录框架,它允许开发者对应用程序进行详细的日志记录,以帮助调试、性能分析和故障排查。在某些情况下,我们希望将不同模块的日志信息输出到不同的文件中,以便于管理和分析。以下是实现...

    log4netDemo

    `app.config`是.NET应用程序的配置文件,其中包含了应用程序运行时所需的各种设置,如数据库连接字符串、服务端口等。在log4netDemo中,`app.config`被用来配置log4net的行为,包括定义日志输出的级别(如DEBUG、...

    SpringBoot日志处理之Logback1

    然而,对于更复杂的日志需求,如日志分割、不同类型的日志分开存储或自定义日志格式,我们需要通过XML配置文件来实现。Logback的默认配置文件通常是`logback-spring.xml`。在这个文件中,我们可以定义`appender`节点...

    Spring按业务模块输出日志到不同的文件.doc

    在logback配置文件(如`logback.xml`)中,通过`&lt;logger&gt;`元素为每个模块定义一个Logger,设置其`name`属性为对应模块的包名,并引用对应的Appender。 3. **实现模块日志输出** 对于login模块,设置Logger的`name...

    ssh框架基本代码,只是最基本的,日志什么的要自行添加

    7. **日志集成**:虽然这个压缩包没有包含日志组件,但SSH框架的正常运行通常需要日志记录,例如Log4j或SLF4J。日志可以帮助开发者跟踪程序运行状态,排查问题。在项目中添加日志配置,可以提高问题定位的效率。 8....

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    第19章 使用log4j进行日志操作 564 19.1 log4j介绍 564 19.1.1 logger组件 564 19.1.2 appender组件 566 19.1.3 layout组件 567 19.2 使用log4j 568 19.3 log4j使用实例 572 19.4 ndc和mdc 585 19.5 小结 ...

    Spring Boot异步输出Logback日志方法详解

    Spring Boot默认包含了Logback和SLF4J的依赖,因此我们只需要关注配置文件的编写。理想的日志配置应该将ERROR日志与其他级别日志分开,且根据时间分段存储,便于问题排查。 以下是一个简单的`logback-spring.xml`...

    django实现日志按日期分割

    - `handlers`: 处理器,定义了控制台输出(`console`)和文件输出(`file`)两种方式。`file`使用`TimedRotatingFileHandler`按时间自动分割日志文件。 - `when`: 分割时间单位,可以是S秒、M分、H小时、D天等。 - `...

    java Web Service 打成War包后如何Debug

    - 当直接调试不可行时,可以依赖日志记录(如Log4j、Logback)来跟踪程序执行流程,输出关键变量的值。 - 使用性能监控工具(如JProfiler、VisualVM)来分析内存、线程和CPU使用情况,辅助定位问题。 5. **单元...

    Mysql 教程之运维系列

    - 在`my.cnf`或`my.ini`配置文件中设置`log_error`参数来指定错误日志的存储路径。 - 示例配置:`log_error = /var/log/mysql/error.log`。 - **查看与分析**: - 使用文本编辑器或命令行工具(如`tail -f /var/...

    apache tomcat

    - `conf`:包含服务器配置文件,如server.xml和web.xml。 - `webapps`:存放Web应用的目录,MyEclipse部署的应用会在这里出现。 - `logs`:存放服务器日志文件。 - `temp`:临时文件存储位置。 - `work`:存放...

    nginx配置优化+负载均衡+动静分离详解

    ` 包含了MIME类型的配置文件,用于处理不同的文件类型。 - **默认内容类型**: `default_type application/octet-stream;` 当无法确定文件类型时,Nginx将使用`application/octet-stream`作为默认类型。 - **日志格式...

Global site tag (gtag.js) - Google Analytics