特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过。如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/

1、问题描述

一般log4j的使用都是在log4j.properties文件中指定配置参数,然后框架自动初始化,但是有些特殊的情况需要写程序手动初始化,并为它传递参数,如日志文件的存放位置要配置成可变,文件大小也要可变等等。如果用配置文件来指定,系统初始化log4j后就不能再改变了。
log4j提供了动态参数配置的功能,程序只需要在使用log记录器写日子之前重新使配置生效即可,具体为:
1. 用Properties保存配置参数。
2. 用PropertyConfigurator来是配置生效。

2、配置参数

Properties pro=new Properties();
pro.put("log4j.rootLogger", "info,A");
pro.put("log4j.appender.A", "org.apache.log4j.DailyRollingFileAppender");
pro.put("log4j.appender.A.File", "D:/logs/sys.log");
pro.put("log4j.appender.A.DatePattern", "'.'yyyy-MM-dd-HH");
pro.put("log4j.appender.A.layout", "org.apache.log4j.PatternLayout");
pro.put("log4j.appender.A.layout.ConversionPattern", "%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m -(:%L)%n");

3、使配置生效

PropertyConfigurator.configure(pro);

也可以预先指定多个配置文件,然后在configure(path)的path指定配置文件
初始配置可以在静态块中执行这段代码,
当需改变配置是,执行这段代码使更改生效。

4、参考网站

http://blog.csdn.net/wangjie5540/article/details/41897301

log4j动态配置参数的更多相关文章

  1. log4j 动态配置,重启项目配置失效问题

    公司项目升级之后,成功去掉了log4j.properties配置文件,实现页面动态配置日志级别. 很经典的两个配置,但是最终还是随着时代的进步而被优化,最终弄成了可配置项 但是随之问题就来了,当我启动 ...

  2. log4j.xml 配置参数属性level使用心得

    jdbc.sqlonly        只显示执行的sql语句.info级才可以显示,debug增加显示java源代码位置. jdbc.sqltiming    显示执行的sql语句以及语句执行时间, ...

  3. ZooKeeper动态配置(十四)

    概述 在3.5.0发行之前,ZK的全体成员和所有其它的配置参数是静态加载的在启动的时候并且在运行的时候不可变.操作员诉诸于"滚动重启" - 一个手动密集和改变配置文件容易出错的方法 ...

  4. springmvc 项目完整示例06 日志–log4j 参数详细解析 log4j如何配置

    Log4j由三个重要的组件构成: 日志信息的优先级 日志信息的输出目的地 日志信息的输出格式 日志信息的优先级从高到低有ERROR.WARN. INFO.DEBUG,分别用来指定这条日志信息的重要程度 ...

  5. log4j的基本配置参数

    转载:http://blog.csdn.net/fengyifei11228/article/details/6070006 log4j配置文件有三个主要的组件:Logger,Appender和Lay ...

  6. redis动态修改参数配置

    ./redis-cli -h 10.10.10.11 -p 6401   save  # 保存当前快照   # 列出所有当前配置 config get *   # 查看指定配置 config get  ...

  7. log4j动态监听配置修改

    一般情况下,log4j的配置文件是log4j.properties.但是每次我们修改了配置文件之后程序并不会自动去加载,而需要我们去重启程序.那么怎么样才能让程序不用重启就监听到变化呢.代码如下: p ...

  8. 基于JMX动态配置Log4J日志级别

    先来看比较low的修改日志级别的方式,在写程序里面. http://blog.gssxgss.me/java%E8%BF%90%E8%A1%8C%E6%97%B6%E5%8A%A8%E6%80%81% ...

  9. Springboot定时任务实现动态配置Cron参数(从外部数据库获取)

    https://blog.csdn.net/qq_35992900/article/details/80429245 我们主要讲解它的动态配置使用方法. 在刚开始使用的时候,我们更改一个任务的执行时间 ...

随机推荐

  1. 今天给大家分享一下js中常用的基础算法

    今天给大家分享一下js中常用的基础算法,废话不多说,直接上代码: 1.两个数字调换顺序 ,b= function fun(a,b){ b = b - a ;// a = 2 ; b = 2 a = a ...

  2. java多线程ExecutorService

    1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() { ...

  3. 17种常用的JS正则表达式 非负浮点数 非负正数

    <input type='text' id='SYS_PAGE_JumpPage' name='SYS_PAGE_JumpPage' size='3' maxlength='5' onkeyup ...

  4. htpasswd 使用&&在线生成器

    1.简单介绍 htpasswd-管理用于基本身份验证的用户文件. 这个文件可以用来控制nginx或Apache的目录访问控制权限,例如,nginx的在配置nginx_status的态的时候(如下图所示 ...

  5. ros 封ip,域名,端口,重定向

    1.封IP / ip firewall filter add chain=forward dst-address=192.168.0.1(想要封的IP) action=drop comment=&qu ...

  6. Mac OSX编译安装php7.1.8

    laravel中用到ldap认证包,要求php7.0以上版本,而且安装Mews\Captcha包的时候 验证码无法显示 报错如下: Call to undefined function Interve ...

  7. 文件操作相关函数(POSIX 标准 open,read,write,lseek,close)

    POSIX标准 open函数属于Linux中系统IO,用于“打开”文件,代码打开一个文件意味着获得了这个文件的访问句柄. int fd = open(参数1,参数2,参数3): int fd = op ...

  8. 第二章 Vue快速入门-- 17 v-for指令的四种使用方式

    1.v-for循环普通数组 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  9. nginx反向代理原理及配置详解

    nginx概述nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外n ...

  10. 【洛谷P2147】洞穴勘测

    题目大意:维护 N 个点的无向图,支持动态加边和删边,回答两点的连通性. 题解:线段树分治 + 可撤销并查集 询问可以离线,这是线段树分治的基础. 建立在操作时间轴上的线段树称为线段树分治算法. 本题 ...