java log4j 动态配置_动态更改log4j日志级别
问题
有哪些动态更改log4j日志级别的方法,以便我不必重新部署应用程序。在这些情况下,这些变化是永久性的吗?
#1 热门回答(79 赞)
#File Watchdog
Log4j能够观察log4j.xml文件以进行配置更改。如果更改log4j文件,log4j将根据你的更改自动刷新日志级别。有关详细信息,请参阅org.apache.log4j.xml.DOMConfigurator.configureAndWatch(String,long的文档。检查之间的默认等待时间为60秒。由于你直接更改文件系统上的配置文件,因此这些更改将是持久的。你需要做的就是调用DOMConfigurator.configureAndWatch()一次。
注意:由于Thread泄漏,configureAndWatch方法在J2EE环境中使用是不安全的
#JMX
另一种设置日志级别(或通常重新配置)log4j的方法是使用JMX。 Log4j将其记录器注册为JMX MBean。使用应用程序服务器MBeanServer控制台(或JDK的jconsole.exe),你可以重新配置每个单独的记录器。这些更改不是持久性的,并且会在重新启动应用程序(服务器)后重置为配置文件中设置的配置。
自制
如Aaron所述,你可以以编程方式设置日志级别。你可以按照希望的方式在应用程序中实现它。例如,你可以使用GUI来更改日志级别,然后在记录器上调用setLevel()方法。你是否将设置保留在某处取决于你自己。
#2 热门回答(71 赞)
更改日志级别很简单;修改配置的其他部分将提供更深入的方法。
LogManager.getRootLogger().setLevel(Level.DEBUG);
这些变化在4335345352的生命周期中是永久性的。在重新初始化时,将读取并使用配置,因为在运行时设置级别不会持续更改级别。
**更新:**如果你使用的是Log4j 2,则应该删除对电话号码为setLevel的documentation,这可以通过实现类来实现。
API不支持调用logger.setLevel()或类似方法。应用程序应删除这些。 Log4j 2实现类中提供了等效功能,但可能使应用程序容易受到Log4j 2内部更改的影响。
#3 热门回答(3 赞)
可以将Log4j2配置为通过以给定间隔扫描log4j2.xml文件(或等效文件)来刷新其配置。只需将"monitorInterval"参数添加到配置标记即可。请参阅示例log4j2.xml文件的第2行,该文件告诉log4j在上次日志事件超过5秒后重新扫描其配置。
fileName="/var/log/tryIt.log"
filePattern="/var/log/tryIt-%i.log.gz">
...
java log4j 动态配置_动态更改log4j日志级别相关推荐
- eclipse编译java项目class文件_动态编译 Java 代码以及生成 Jar 文件
导读: 最近在看 Flink 源码的时候发现到一段实用的代码,该代码实现了 java 动态编译以及生成 jar 文件.将其进行改进后可以应用到我们的平台上,实现在平台页面上编写 java 代码语句,提 ...
- java 手机动态口令_动态密码TOTP的Java实现
一.HOTP HOTP 算法,全称是"An HMAC-Based One-Time Password Algorithm",是一种基于事件计数的一次性密码生成算法,详细的算法介绍可 ...
- mysql数据库搭建动态网站_动态网站搭建之如何配置Mysql数据库连接详细教程讲解...
众所周知,网站分静态网站和动态网站,那么什么是静态和动态呢?又怎么区分呢? 动态网站体现在网页一般是以asp,jsp,php,aspx等技术编写的网页,但也可以使用URL静态化技术,使网页后缀显示为H ...
- java 反射 动态编译_动态编译java源代码和反射调用问题
我从教程中得到了以下代码: package com.tom.labs; import java.io.IOException; import java.lang.reflect.Method; imp ...
- java地图图表动态亮点_动态展示地图和图表
每年6月底,旧的财年就要结束,新的财年即将开始.这是最繁忙的季节,不仅要对本财年的业绩进行分析和回报,还要制定新财年的计划和目标.如果今年取得了骄人的业绩,在回报时就更要做的尽善尽美.一个出色的Pow ...
- java生成动态验证码_动态生成验证码案例
servlet代码 package cn.guizimo.web.servlet; import javax.imageio.ImageIO; import javax.servlet.Servlet ...
- python动态柱状图_动态排名柱状图的两种做法
受B站拜年祭发射最多的弹幕是什么?视频启发,对日常维护工作中的故障硬件也做了一次盘点.这里介绍两种方法,第一种是Python + Matplotlib:第二种是利用GitHub上现成的"轮子 ...
- 动态路由协议_动态路由协议的类别
动态路由协议 Dynamic routing protocols have been divided into 2 categories i.e Distance vector protocols a ...
- java+spring+mysql配置_用spring的beans配置mysql数据库
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www. ...
- java调用siri 语言_如何更改Siri的声音,口音,性别和语言
java调用siri 语言 Most of us are familiar with Siri as an American female voice. What you may not realiz ...
最新文章
- recyclerview item点击无效_让你彻底掌握RecyclerView的缓存机制
- linux 修改默认路径吗,linux中vsftp修改默认路径
- 化境文件上传修改版.可检测任何木马
- 云服务器怎么装mysql_云服务器(windows环境)安装mysql图文教程
- 首次公开 | 淘系技术总监马鏖谈淘系用户增长
- Jsoup设置元素的文本内容
- 让年轻程序员少走弯路的14个忠告
- canvas 文字颜色_一篇图文学会HTML5的canvas标签,直线曲线文字渐变,统统可以有...
- Android IPC(三)AIDL实现跨进程通信
- sklearn——一元线性回归
- 资源 | 最新版区块链术语表(中英文对照)
- adams教程建模仿真实例
- 基于中间人攻击给电视盒子安装apk
- 一线工程师告诉你嵌入式真实现状与发展前景
- 组合数怎么用计算机算方差,投资组合的方差公式是什么?怎么算的
- libtorch显存管理示例
- IDM下载器下载百度网盘文件
- 百度离线地图APIV2.0
- git clone 报 “remote: The project you were looking for could not be found.”
- python中给变量赋值时、既确定了变量的值_Python 中的变量赋值不需要类型声明,可以直接赋值,通过值来决定变量的类型。_学小易找答案...