在实际开发项目中,大部分产品的日志级别是ERROR级别的,因为这样可以提升系统运行效率,也可以防止INFO日志过多,日志文件很快被写满,以至于系统不能保存长时间的日志。进而造成定位问题不方便。
但是在ERROR级别下可能无法看到系统运行的详细日志信息。有时候需要查看INFO日志。所以最好有一种方法可以在系统运行过程中,动态修改日志级别。
实现动态修改日志级别,有两种办法:
1、利用Log4j提供的类和方法
2、自己实现监控log4j.xml文件更新,并实现动态配置更新。
一、利用Log4j提供的动态配置更新方法实现动态修改日志级别。
调用PropertyConfigurator或者DOMConfigurator类的configureAndWatch(String configFileName)或者configureAndWatch(String configFileName,long delay)
走读Log4j DOMConfigurator类configureAndWatch方法源码,发现只要是调用configureAndWatch()方法,Log4j就会启动一个线程,根据入参delay或者默认的1分钟时间周期扫描指定的log4j.xml文件的更新情况,如果发现有更新则重新加载log4j.xml配置。
代码示例:
import org.apache.log4j.Logger; import org.apache.log4j.xml.DOMConfigurator; /** * */ /** * @author Administrator * */ public class LogConfigurator { private static Logger logger = Logger.getLogger(LogConfigurator.class); /** * @param args */ public static void main(String[] args) { DOMConfigurator.configureAndWatch("d:\\log4j\\log4j.xml", 5000L); while (true) { try { logger.info("hello-Info"); logger.debug("hello-Debug"); logger.error("hello-Error"); Thread.sleep(5000); } catch (Exception e) { e.printStackTrace(); } } } }
在D盘,Log4j文件夹下创建log4j.xml文件。内容如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <!-- 类似定义logger节点打印具体类,或某包中的指定级别以上日志 --> <logger name="LogConfigurator"> <level value="info" /> [color=red] <appender-ref ref="console" /> [/color] </logger> <appender name="console" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[DomConfigurator Test][%d{ABSOLUTE}][%-5p][%m]%n" /> </layout> </appender> </log4j:configuration>
运行LogConfigurator的main方法,并随时修改D:\log4j\log4j.xml文件中定义的日志级别。
<level value="info" />
观察控制台打印的日志级别。
相关推荐
使用Gradle自定义配置进行Repackage i. 59.8.1. 配置选项 Spring Boot参考指南 6 ix. 59.9. 理解Gradle插件是如何工作的 iii. 60. 对其他构建系统的支持 i. 60.1. 重新打包存档 ii. 60.2. 内嵌的库 iii. 60.3. 查找...
在web.xml中配置log4j信息打印 (需要自己将log4j的配置文件给打开) 三: 配置文件 查看/src/config/ ,配置文件可观察文件名称理解 四: 登录名为2:可以进行权限的验证,以及shiro的缓存。 登录名为任意...
3.6. 配置文件修改后自动重新加载 ................................................................... 22 3.7. 直接调用 JoranConfigurator ....................................................................
oracle 11g的监听日志和警告日志都是在/u01/oracle/diag/tnslsnr/oracle/listener目录和/u01/oracle/diag/rdbms/db1/db1目录下都有以下分别简称listener目录和db1目录。这两目录下都有如下目录:alert cdump hm ...
rc/main/resource 提供 config.properties 外部属性文件、log4j.properties 日志配置文件 配置文件如下: applicationContext.xml struts2 注解 类上 @ParentPackage 包继承谁? extends=”struts-default...
WEB-INF下的applicationContext.xml为Spring的配置文件,struts-config.xml为Struts的配置文件,file-upload.jsp为文件上传页面,file-list.jsp为文件列表页面。 本文后面的章节将从数据持久层->业务层->Web层的...
filter:Log4jFormatFilter(格式化log4j日志输出的),SessionCheckFilter(登陆拦截器) interceptor:权限拦截包 listener:目前只有session的监听器,用于监听session的 service:具体的业务处理包 util:项目工具包 ...
在Java中整合SSH(Spring + Struts2 + Hibernate)框架时,需要引入相应的jar包。以下是一些基本的jar包和它们的用途: Spring基本和IOC的jar包: ...如log4j, junit等。 整合用的jar包: 用于整合Spring和Struts2的
二:在XML文件中定义OnClick属性,在java代码中对应方法。 在button下加上如下代码android:onClick=skip(skip即为方法对应的名字,然后在java代码中在定义具体的方法) android:id="@+id/button1" ...
配置控制生成输出文件(listenter、filter、quartz、activeMQ、redis、webXml、initXml、contextXml) 项目可统计在线人数,无操作超时退出,监听网络请求,配置log4j、数据库连接等文件; 自动封装sql语句,自动...
查看 src/main/resources/log4j.properties 以获取示例配置。 发展 使用 LogAppenderTestFixture 运行一个简单的服务器来监听日志消息。 运行 GlobalContextSocketAppender 中的 main 方法以发送测试日志消息。 ...
如何配置自定义错误页面(Custom Error Pages) 配置Jetty Statistics(统计) 配置Jetty Statistics教程 配置Request Log教程 Java-monitor 故障排除 如何使用Jetty Dump Feature(特性) Webtide Blog–Jetty ...
Ajax-log-listener.zip,使用jquery(php和mysql)的大数据日志监听器,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新...
网站开发指南 清华大学出版社 1章 JSP技术简介 2章 JSP语法 3章 JSP内置对象 4章 Servlet技术介绍 ...23章 使用Log4j进行Web应用的日志管理与程序调试 24章 使用XDoclet简化JSP 25章 使用Ant管理JSP Web应用
PrimeFaces是一个用于提高JSF Web应用程序开发效率的开源类库。 UI Components:PrimeFaces UI模块提供了拥有Rich Web用户体 验的各种JSF组件。... Log4J适配器;FacesMessage监听器;组件树可视化查看器
BlazeDS 将读取 services-config.xml 配置文件,该配置文件又引用了 remoting-config.xml、proxy-config.xml 和 messaging-config.xml 这 3 个配置文件,所以,一共需要 4 个配置文件。 由于 BlazeDS 需要将 Java ...
PrimeFaces是一个用于提高JSF Web应用程序开发效率的开源类库。 主要由三个模块组成: 1、UI Components:PrimeFaces UI模块提供了拥有Rich Web用户体验的... Log4J适配器;FacesMessage监听器;组件树可视化查看器。
我们的Factory就是利用这种方式根据配置文件动态加载程序集,动态创建对象并设置属性的。有了这个Factory,MainApp中的内容就很简单了: using System; namespace IocInCSharp { public class MainApp { public ...
{14.4}dom4j}{207}{section.14.4} {14.5}XPath}{210}{section.14.5} {14.6}apache.commons}{211}{section.14.6} {15}sqlite3}{213}{chapter.15} {16}Web基础}{215}{chapter.16} {16.1}...
第8篇为工具篇,内容包括在Java Web项目中常用的开源工具框架、主要有版本管理工具SVN、日志工具commons-logging与Log4J、报表图形引擎JFreeChart、PDF组件iText等;第9篇为实战篇,内容为两个典型的应用系统:论坛...