Log4j是什么不多说了,平时我们在项目中使用log4j时,日志输出级别,一般都是预定义在定义文件里的,但问题在于,如果系统发生了错误,我们希望可以看到更多的信息,以确定错误发生的原因。大部分情况下,我们的做法了,停掉系统,修改log4j的输出级别,例如从info改到debug,然后再试着去重现错误。然后悲剧发生了,发现错误就是不出来,总不能系统一直在debug状态下运行吧,除非你真的完全不在乎性能问题。
遇到以上情况,其实只要我们在系统里多实现一个小的辅助功能,当系统发生错误时,可以动态修改log4j的日志输出级别就可以了。
public class Log4jTest { private static Log log = LogFactory.getLog(Log4jTest.class); public static void main(String[] args) { log.info("hello1"); log.debug("world1"); log.error("Baby1"); changeLevel("DEBUG"); log.info("hello2"); log.debug("world2"); log.error("Baby2"); changeLevel("ERROR"); log.info("hello3"); log.debug("world3"); log.error("Baby3"); } public static void changeLevel(String value) { final String sArg = LogManager.getRootLogger().getLevel().toString(); if (sArg.equals(value)) return; final Level level = Level.toLevel(value); // 设置根日志级别 LogManager.getRootLogger().setLevel(level); // 获取配置文件中的所有log4j对象 final Enumeration<Logger> logs = LogManager.getCurrentLoggers(); while (logs.hasMoreElements()) { final Logger logger = logs.nextElement(); // 给log4j对象设置级别 logger.setLevel(level); } } }
注:以上代码是参考自某位仁兄的信息,但忘记了来源出处,所以很抱歉,无法说明转载出处。
相关推荐
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是...
slf4j日志级别有五种:ERROR、WARN、INFO、DEBUG、TRACE,级别从高到底 其示例中取warn级别及写入数据库配置:database 三、配置文件db.properties、log4j.properties两个配置文件可以通过servlet配置来使用,也...
如何在Springboot应用程序运行时中更改日志级别 介绍 这个简单的示例显示了在您的应用程序运行时更改日志级别是多么容易,因此可以节省重新启动它(仅更改为DEBUG或TRACE)的麻烦。 更详细的信息可以在 建造 这是一...
应用程序),以便您可以在运行时更改日志记录配置,这对于测试、QA 和生产(许多日志记录库和对于此用例 [4],JEE 服务器支持 JMX [3],IBM Websphere 具有对内置日志记录的动态控制)。 本教程是为几乎没有 Clojure...
配置Tomcat日志级别及日志查看。1:tomcat中的日志开关文件介绍; 2、Tomcat 日志信息; 3、修改 Tomcat 运行日志的等级;4、使用 log4j 记录应用程序日志或系统日志;
在运行时配置日志级别的优点是: 更改会立即生效。 无需将配置文件复制到群集中的许多服务器。 更改可以顺利进行。 无需重新启动应用程序。 更改可以轻松配置。 没有长的XML,JSON或属性文件。 安全配置。 没有...
无入侵的分布式日志系统,基于log4j、log4j2、logback搜集日志,设置链路ID,方便查询关联日志 基于elasticsearch作为查询引擎 高吞吐,查询效率高 全程不占应用程序本地磁盘空间,免维护;对于项目透明,不影响项目...
2.1 更改日志级别 如果要启用更详细的日志记录,可以在 src/main/config/log4j.properties 更改日志 2.2 运行/调试 要运行问题,您可以在 VoteTest.java 中简单地运行 junit 测试用例,这将启动投票过程。 要查看...
更改日志 主要更改 次要更改 翻译 构建系统 2.41 更改日志 次要更改 翻译 构建系统 2.40 更改日志 主要更改 次要更改 翻译 2.39 更改日志 主要更改 次要更改 2.38 更改日志 主要更改 次要更改...
日志记录-jmx-service 从 code.google.com/p/logging-jmx-service 自动导出简短的介绍JMX bean 提供更改类/包的日志级别和在运行时重新加载 log4j.properties 的功能。介绍我面临着在应用程序运行时更改类/类别的 {{...
1、无入侵的分布式日志系统,基于log4j、log4j2、logback搜集日志,设置链路ID,方便查询关联日志 2、基于elasticsearch作为查询引擎 3、高吞吐,查询效率高 4、全程不占应用程序本地磁盘空间,免维护;对于项目透明...
chapter4-2-3:对log4j进行多环境不同日志级别的控制 chapter4-2-4:使用AOP统一处理Web请求日志 chapter4-2-5:使用log4j记录日志到MongoDB chapter4-2-6:Spring Boot 1.5.x新特性:动态修改日志级别] 安全管理 ...
- chapter4-2-3:[对log4j进行多环境不同日志级别的控制](http://blog.didispace.com/springbootlog4jmuilt/) - chapter4-2-4:[使用AOP统一处理Web请求日志](http://blog.didispace.com/springbootaoplog/) - ...
此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。 use master go sp_...
在基于Windows 2000网络中,活动目录(Active Directory)是它的核心。活动目录是一个分布式的目录服务。网络信息可以分散在多台不同的计算机上,保证快速访问和容错;同时不管用户从何处访问或信息处在何处,对用户都...
从上面的内容我们可以看出,在这里定义了default属性的值为sayBaseDir,即当运行ant命令时,若未指明执行的target时,默认执行的target的sayBaseDir,同时还定义了basedir属性的值为E:"apache-ant-1.7.0,进入E盘后...
选择一个适当级别的可移植性 11.2. 通过Maven Profiles实现可移植性 11.2.1. 覆盖一个项目对象模型 11.3. 激活Profile 11.3.1. 激活配置 11.3.2. 通过属性缺失激活 11.4. 外部Profile 11.5. Settings ...
<artifactId>slf4j-log4j12 ${slf4j.version} <!-- Mybatis --> <groupId>org.mybatis <artifactId>mybatis ${mybatis.version} <groupId>org.mybatis <artifactId>mybatis-spring ${...