<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> <!-- ========================== 自定义输出格式说明================================ --> <!-- %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL --> <!-- %r 输出自应用启动到输出该log信息耗费的毫秒数 --> <!-- %c 输出所属的类目,通常就是所在类的全名 --> <!-- %t 输出产生该日志事件的线程名 --> <!-- %n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n” --> <!-- %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921 --> <!-- %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10) --> <!-- ========================================================================== --> <!-- ========================== 输出方式说明================================ --> <!-- Log4j提供的appender有以下几种: --> <!-- org.apache.log4j.ConsoleAppender(控制台), --> <!-- org.apache.log4j.FileAppender(文件), --> <!-- org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), --> <!-- org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件), --> <!-- org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方) --> <!-- ========================================================================== --> <!-- 输出到日志文件 --> <appender name="TestDebug" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="D:/log/Testdebug.log"/> <param name="Append" value="true"/> <param name="MaxFileSize" value="5KB"/> <param name="MaxBackupIndex" value="2"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%c %d{ISO8601}-- %p -- %m%n"/> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMin" value="DEBUG"/> <param name="LevelMax" value="DEBUG"/> </filter> </appender> <appender name="TestInfo" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="D:/log/Testinfo.log"/> <param name="Append" value="true"/> <param name="MaxFileSize" value="5KB"/> <param name="MaxBackupIndex" value="2"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%c %d{ISO8601}-- %p -- %m%n"/> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMin" value="INFO"/> <param name="LevelMax" value="INFO"/> </filter> </appender> <appender name="TestError" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="D:/log/testError.log" /> <param name="MaxFileSize" value="2000KB" /> <param name="MaxBackupIndex" value="300" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n" /> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMin" value="ERROR" /> <param name="LevelMax" value="ERROR" /> </filter> </appender> <!--通过<category></category>的定义可以将各个包中的类日志输出到不同的日志文件中--> <category name="com"> <priority value="debug" /> <appender-ref ref="TestInfo" /> <appender-ref ref="TestDebug" /> </category> <logger name="com.Test"> <level value="INFO" /> <appender-ref ref="TestError" /> </logger> <root> <priority value="debug"/> </root> </log4j:configuration>
public class Test { private static final Logger log = Logger.getLogger(Test.class); public static void main(String[] args) { log.info("info ...."); log.debug("debug ...."); log.warn("warn...."); log.error("test test test"); } }
注意:
日志级别 <!-- %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL -->
所以像下面这样设置appender过滤器,将打印info、warn、error三个级别的日志到文件中。
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="INFO"/>
<param name="LevelMax" value="ERROR"/>
</filter>
相关推荐
总结来说,动态设置Log4j的日志级别是提高应用灵活性的重要手段,可以根据运行时的需求调整日志输出的详细程度,同时避免不必要的重启操作。通过配置文件、API、JMX以及Web界面等多种方式,开发者可以方便地实现这一...
2. **Level**:日志级别,包括DEBUG、INFO、WARN、ERROR和FATAL,用于控制日志信息的输出级别。 3. **Appender**:日志输出的目标,如控制台、文件、网络等。我们关注的是将日志输出到文件的FileAppender。 4. **...
例如,`%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n`会输出时间戳、日志级别、logger名称、行号和日志消息。如果你的需求更复杂,可以继承`PatternLayout`或`TTCCLayout`等类,然后重写`format()`方法,以满足...
在XML配置文件中,我们可以定义日志输出的目标(appender)、日志级别(level)和布局(layout)。例如: ```xml <log4net> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> ...
标题"Android-AndroidLog日志打印输出到文件方便查看和上传到服务器"所描述的,就是一种将Android应用的日志信息写入到本地文件的方法,以便后续分析或上传到远程服务器。这个方法能够帮助开发者在无法直接访问设备...
`spdlog`支持多种日志级别,包括`trace`, `debug`, `info`, `warn`, `err`, `critical` 和 `off`。可以设置全局或特定日志器的级别,控制不同级别的日志输出。 #### 格式化 `spdlog`允许自定义日志格式。例如,你...
Log4j是Apache提供的一款广泛使用的日志框架,它提供了丰富的功能,包括控制日志级别、定制日志格式、支持多种输出方式等。本示例将详细介绍如何使用Log4j来控制指定类或包的日志级别。 首先,我们来理解日志级别的...
`log4j配置输出日志案例.doc`文档中应该包含了更详细的配置和实际运行案例,包括如何调整日志级别、设置过滤器、自定义日志格式等。这些案例可以帮助读者更好地理解和应用log4j,解决实际开发中的日志管理问题。 ##...
- 为了提高性能,避免不必要的日志输出,应合理设置日志级别。DEBUG级别信息只在调试时开启,生产环境中通常使用INFO或更高的级别。 - 使用异步Appender可以提高日志记录效率,防止日志输出对应用性能的影响。 6....
- 在Log4j2中,日志级别包括DEBUG、INFO、WARN、ERROR、FATAL以及OFF。每个级别对应不同的严重程度,例如DEBUG用于调试信息,INFO用于一般信息,WARN表示可能出现的问题,ERROR和FATAL表示错误和严重错误,而OFF则...
通过定义枚举类型,我们可以方便地切换不同的日志级别,只输出特定级别的信息。例如: ```cpp enum LogLevel { DEBUG, INFO, WARNING, ERROR, FATAL }; ``` 2. **时间戳**:为了追踪日志的生成时间,可以在每条...
此外,它的配置文件支持动态调整,可以在运行时改变日志级别、格式和其他设置。 ### 6. 用户友好的接口封装 虽然g3log的原始接口可能对一些开发者来说不够直观,但可以通过二次封装来创建更符合个人或团队习惯的...
4. **日志分级**:通过设置不同的日志级别,可以在生产环境中过滤掉不重要的信息,只保留错误和警告,以减小存储和查看负担。 5. **错误堆栈信息**:当出现错误时,模块会记录错误堆栈,显示错误发生时的函数调用...
分包日志输出是Log4j的一个高级特性,允许我们根据类所在的包或子包来定制不同的日志级别和输出策略。例如,我们可以让某个包下的所有类输出DEBUG级别的日志,而其他包只输出ERROR级别的日志。这样,我们可以在不...
本篇我们将深入探讨如何调整log4j的日志级别,以便更好地管理和控制应用程序的日志输出。 首先,我们要理解日志级别在log4j中的含义。Log4j提供了多个预定义的日志级别,按照严重性从低到高排序,包括TRACE、DEBUG...
Log4j作为Java平台上广泛使用的日志框架,提供了强大的日志输出和管理功能。本文将深入探讨如何利用Log4j进行日志输出格式化以及设置日志文件名格式化,以满足公司的标准化需求。 首先,我们来看日志输出格式化。...
Log4j 是一个功能强大且广泛使用的日志记录工具,特别是在 SSM(Spring、Spring MVC、Mybatis)整合项目中,合理地配置 Log4j 对项目的日志记录和输出至关重要。本文将详细介绍 SSM 整合中的 Log4j 配置详情,帮助...
Apache的开源项目Log4j正是这样一款强大且灵活的日志组件,它不仅支持多种日志级别,还允许用户自定义日志格式和输出方式,极大地提高了日志使用的灵活性和效率。 #### Log4j中的日志级别 Log4j支持多种不同的日志...
`OpenLog`函数用于创建或打开指定路径的日志文件,`CloseLog`用于关闭日志文件,`WriteLog`则负责将信息写入日志文件,可以根据日志级别选择不同的输出格式。例如: ```cpp bool CLog::OpenLog(const CString& ...
首先,Log4j是Apache的一个开源项目,它提供了一个灵活的日志系统,允许开发者定义日志级别、输出格式以及输出位置,极大地增强了日志管理的灵活性。Log4j的配置文件通常是`log4j.properties`或`log4j.xml`,在这里...