log4j配置文件加载

log4j的jar包内部包含preference默认配置,使用者可以通过log4j.xml或log4j.properties来指定自己的配置。xml比properties优先。另外注意java读取properties文件时只是通过=号来分割键值对,所以#注释不能与键值对定义放在同一行。

指定配置文件的方式有:

  1.log4j.jar包会先使用System.getProperty("log4j.xml或configuration")看是否有jvm参数,我们可以通过java -Dlog4j.configuration=file:/full_path/log4j.properties 来指定(file:前缀不能省)。

  2.代码中使用PropertyConfigurator.configure(param);来指定。比较令人困惑的可能是相对路径的问题了,在IDE或jar包中可以通过getClassLoader().getResource("log4j.properties");来获得存在于CLASSPATH中资源文件。

多个jar包共用一个log4j.jar的情况下可以实现让不同jar包使用不同的输出等级,

如将rootLogger设为info级别,而将自己的包设为debug级别:

log4j.logger.包名=DEBUG

也可以指定每个jar包输出到不同的文件:

log4j.logger.包名1=DEBUG,jar1logger

log4j.appender.jar1logger=org.apache.log4j.RollingFileAppender
log4j.appender.jar1logger.layout=org.apache.log4j.PatternLayout
log4j.appender.jar1logger.layout.ConversionPattern=%d [%t]<%-5p> %c -> %m%n
log4j.appender.jar1logger.File=/var/log/mylog/jar1.log
log4j.appender.jar1logger.Append=true
log4j.appender.jar1logger.MaxFileSize=1024KB
log4j.appender.jar1logger.MaxBackupIndex=5

下面是最简单的一份配置:

### set log levels ,stdout,D,E是自己起的名字###
#设置rootLogger级别为INFO则屏蔽debug信息,级别all<debug < info < warn < error < fatal<off
log4j.rootLogger = INFO, stdout

### 输出到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern =  [fyk]%d{ABSOLUTE} %p [%C{1}.%M]:%L - %m%n

### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/all.log
log4j.appender.D.Append = true
## 输出DEBUG级别以上的日志
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [%t:%r][%C{1}.%M] - [%p]  %m%n
##ERROR
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [%t:%r][%C{1}.%M] - [%p]  %m%n
时间: 2024-08-15 09:31:58

log4j配置文件加载的相关文章

log4j默认加载的配置文件

通过查看log4j源码,版本1.2.16,log4j包 去默认的位置加载 配置文件: 文件名如下: static public final String DEFAULT_CONFIGURATION_FILE = "log4j.properties"; static final String DEFAULT_XML_CONFIGURATION_FILE = "log4j.xml"; 加载配置的过程: LogManager 的 static 代码段: if(config

关于bash的配置文件加载

bash的配置文件分为两类全局配置 /etc/profile  /etc/profile.d/*.sh  /etc/bashrc个人配置 ~/.bash_profile  ~/.bashrc profile类的配置:设定环境变量:运行命令或脚本bashrc类的配置:设定本地变量:定义命令别名 登录式shell如何读取配置文件 (通过本地命令行或远程终端登录:su - username)/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profil

hibernate源码-配置文件加载过程分析

Hibernate建议,在一个应用系统当中Configuration与SessionFactory为单例,Session为多例. 当我们执行如下代码,hibernate开始加载默认的配置文件 new Configuration().configure() hibernate会在classath的根路径下,查找名为"hibernate.cfg.xml" 的配置文件,并解析它,过程如图1所示 图1:配置文件加载过程时序图 下面一起分析一下配置文件加载过程 Step 1.Configurat

saltstack源码-启动3-config.py配置文件加载

#目标文件位置/usr/lib/python2.6/site-packages/salt/config.py#这个文件加载配置文件的模块.master和minion的配置文件加载都是在这个模块里面完成的#master的启动在这模块里面只涉及到方法和属性只有几个 master和minion的默认配置属性也在这个文件里面定义 DEFAULT_MASTER_OPTS = { 'interface': '0.0.0.0', 'publish_port': '4505', 'pub_hwm': 1000,

log4j自动加载原理

java虚拟机加载log4j的类(LogManager.class)后,执行静态代码块,这个类中的静态代码块,会load log4j的配置文件,依次加载log4j.xml,log4j.properties 部分代码: static public final String DEFAULT_CONFIGURATION_FILE = "log4j.properties";     static final String DEFAULT_XML_CONFIGURATION_FILE = &qu

.NET Core配置文件加载与DI注入配置数据

.NET Core配置文件 在以前.NET中配置文件都是以App.config / Web.config等XML格式的配置文件,而.NET Core中建议使用以JSON为格式的配置文件,因为使用起来更加方面灵活,而且可以使用.NET Core中的DI注入配置数据. 使用: 1 var config = new ConfigurationBuilder() 2 .AddInMemoryCollection() //将配置文件的数据加载到内存中 3 .SetBasePath(Directory.Ge

struts2中配置文件加载的顺序是什么?

struts2的StrutsPrepareAndExecuteFilter拦截器中对Dispatcher进行了初始化 在Dispatcher类的init方法中定义了配置文件的加载顺序(下面是源码) public void init() { if (configurationManager == null) { configurationManager = createConfigurationManager(DefaultBeanSelectionProvider.DEFAULT_BEAN_NA

Mybatis 源码分析--Configuration.xml配置文件加载到内存

(补充知识点: 1 byte(字节)=8 bit(位) 通常一个标准英文字母占一个字节位置,一个标准汉字占两个字节位置:字符的例子有:字母.数字系统或标点符号) 1.创建SqlSessionFactory ①Reader reader = Resources.getResourceAsReader("mybatis-config.xml");                       //获取mybatis配置文件的字符 注解:Resources类是在mybatis中定义的一个类:g

Spring的多配置文件加载

如果配置文件存在多个的情况下,加载配置文件的方式是:1--可以指定总的配置文件去包含子的配置文件,然后只加载总的配置文件即可 在总配置文件applicationContext.xml 中引入子文件 <import resource="applicationContext-action.xml"/> <import resource="applicationContext-dao.xml"/> ApplicationContext ac = n