`
weigang.gao
  • 浏览: 482362 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

log4j 笔记之PropertyConfigurator

 
阅读更多

org.apache.log4j.PropertyConfigurator

Allows the configuration of log4j from an external file.

允许使用外部文件来配置log4j

 

See doConfigure(String, LoggerRepository) for the expected format.

看 doConfigure(String, LoggerRepository)了解期望的格式

 

It is sometimes useful to see how log4j is reading configuration files. You can enable log4j internal logging by defining the log4j.debug variable.

查看log4j是如何读取配置文件有时候是有帮助,你能够通过定义log4j.debug变量启动log4j内部日志

 

As of log4j version 0.8.5, at class initialization time class, the file log4j.properties will be searched from the search path used to load classes.

从log4j 0.8.5版本起, 在类初始化的时候, log4j.properties文件将从用于加载类的路径中被查找

 

If the file can be found, then it will be fed to the configure(java.net.URL) method.

如果 log4j.properties文件被发现,那将调用configure()方法(来初始化log4j)

 

The PropertyConfigurator does not handle the advanced configuration features supported by the DOMConfigurator such as support for Filters,custom ErrorHandlers, nested appenders such as the AsyncAppender, etc.

PropertyConfigurator 不支持高级配置特征

 

All option values admit variable substitution.The syntax of variable substitution is similar to that of Unix shells. The string between an opening "${" and closing "}" is interpreted as a key. The value of the substituted variable can be defined as a system property or in the configuration file itself. The value of the key is first searched in the system properties, and if not found there, it is then searched in the configuration file being parsed. The corresponding value replaces the ${variableName} sequence. For example, if java.home system property is set to /home/xyz, then every occurrence of the sequence ${java.home} will be interpreted as /home/xyz.

所有可选值允许用变量代替,变量代替的语法与Unix shells是类似的。放在以“${”开头并且以“}”结尾的字符串被解释成key。替换的变量(这里可以理解成key)的值(value)被定义成系统属性或者在系统文件中。key的值首先在系统属性中查找,如果没有找到,它会在被解析的配置文件中查找。然后使用对应的值来替换${variableName}。例如,如果使用java.lang包中的System类的静态方法setProperty设置

System.setProperty("java.home", "/home/xyz"),那么每个${java.home}出现的地方都将被解释成/home/xyz

 

eg1:变量代替

java代码:

import org.apache.log4j.Logger;
public class HelloWorld {
       	
//	private static Logger logger = Logger.getLogger(HelloWorld.class.getName()); 
	public static void main(String[] args) {
                System.setProperty("category", "DEBUG, stdout, logFile");//这条语句需要放到Logger初始化之前	
                /*当Logger初始化时,将查找log4j.properties文件,用来初始化Logger*/
		Logger logger = Logger.getLogger(HelloWorld.class.getName()); 

		logger.info("main method start...........");
		System.out.println("Hello, World!");
		logger.info("main method end...............");

		
	}

}

log4j.properties文件配置

#替换变量
rootLogger=DEBUG, stdout
#变量rootLogger首先会在系统属性中查找,如果没有找到,那么就会到被解析的配置文件中查找。
#使用替换变量
log4j.rootLogger=${rootLogger}
 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} || %l || %m%n 

 

eg2 :第二种方式设置替换变量

import org.apache.log4j.Logger;

public class HelloWorld {
	
	public static void main(String[] args) {
                //设置系统属性,替换变量
		System.setProperty("catetory", "info, stdout");//这条语句需要放到Logger初始化之前	
		Logger logger = Logger.getLogger("com.hsp.gao"); 

		logger.info("main method start...........");
		System.out.println("Hello, World!");
		logger.info("main method end...............");

		
	}

}

 log4j.properties

#替换变量
rootLogger=DEBUG, stdout, logFile
log4j.rootLogger = ${rootLogger}
#会继承rootLogger中stdout, logFile
log4j.category.com.hsp.gao = ${catetory}
#表示Logger不会在父Logger的appender里输出,默认为true。 
log4j.additivity.com.hsp.gao = false
 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} || %l || %m%n 

log4j.appender.logFile=org.apache.log4j.FileAppender
log4j.appender.logFile.Threshold=WARN
log4j.appender.logFile.ImmediateFlush=true
log4j.appender.logFile.Append=false 
log4j.appender.logFile.File=D:/log/AndStudy.txt
log4j.appender.logFile.layout=org.apache.log4j.PatternLayout
log4j.appender.logFile.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n 

 

2.log4j.Category

 

 

3.log4j.Logger

 

分享到:
评论

相关推荐

    log4j使用笔记

    #### 四、log4j 配置详解 1. **配置文件**: - `log4j.properties` 或 `log4j.xml` 文件用于定义 log4j 的配置规则。 - 配置文件通常放置在项目的根目录或者类路径下。 - 如果未指定配置文件的位置,则 log4j 会...

    tomcat下的log4j日志配置

    PropertyConfigurator.configure(webappRoot + "/WEB-INF/classes/log4j.properties"); } } ``` 3. **配置 web.xml 文件**:修改 `web.xml` 文件,声明上述 Servlet,并指定其初始化参数。 ```xml ...

    log4j配置和加载方法

    通过`PropertyConfigurator.configure("path/to/log4j.properties")`来加载`.properties`配置文件。 2. **DOMConfigurator**: 使用`DOMConfigurator.configure("path/to/log4j.xml")`来加载`.xml`配置文件。 在...

    log4j详细配置说明

    该类通过 `PropertyConfigurator.configure()` 方法读取 `log4j.properties` 文件: ```java package com.apache.jakarta.log4j; import org.apache.log4j.PropertyConfigurator; import javax.servlet....

    log4j(二):动态配置日志输出路径

    import org.apache.log4j.PropertyConfigurator; public class Log4jDynamicConfig { public static void main(String[] args) { // 动态配置日志路径 PropertyConfigurator.configure("newPathToLog4j....

    使用log4j进行日志记录

    Log4j之所以受欢迎的原因之一是它的灵活性。Log4j提供了灵活的配置方法,默认是调用BasicConfigurator.configure()来进行配置,但如果只是简单的调用BasicConfigurator.configure()来进行配置工作,那么所有的配置都...

    log4j案例代码

    在上面的代码中,首先通过`PropertyConfigurator.configure()`加载了Log4j的配置文件,然后通过`Logger.getLogger()`创建了一个日志记录器,最后使用不同级别的方法记录日志。 **5. 配置文件详解** `log4j....

    学习Log4j笔记,TXT格式

    Log4j的强大之处在于它提供了丰富的配置选项,使得开发者可以根据不同的需求调整日志行为。 #### 二、Log4j配置文件详解 在上述提供的内容中,主要涉及到了两种不同类型的项目:Java项目和Web项目,并且给出了具体...

    log4j中配置日志文件相对路径方法(PDF)

    import org.apache.log4j.PropertyConfigurator; import org.apache.log4j.Logger; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import java.io.FileInputStream; import java.io....

    log4j使用与java中log4j记录日志如何写入数据库

    1. **配置文件**:Log4j的配置文件通常是`log4j.properties`或`log4j.xml`,它定义了日志的级别(如DEBUG、INFO、WARN、ERROR、FATAL)、输出目的地(控制台、文件、数据库等)以及布局格式。 2. **日志类**:在...

    log4j-1.2.13-src

    2. `org.apache.log4j.config`: 配置相关的类,如PropertyConfigurator和DOMConfigurator,负责读取和解析配置文件。 3. `org.apache.log4j.helpers`: 辅助类,如DateFormatter、FormattingInfo等,提供了一些通用...

    log4j.properties配置详解

    ### Log4j.properties配置详解 #### 一、Log4j配置文件基本概念 Log4j是一种广泛应用于Java应用程序的日志框架,它可以帮助开发者轻松管理应用程序的日志记录过程。Log4j支持多种配置方式,其中.properties文件...

    log4j的笔记

    PropertyConfigurator.configure("D:/resin/webapps/log4j/web-inf/classes/log4j.properties"); System.out.println("ok"); } } ``` `log4j.properties` 文件中包含了具体的配置信息,例如定义日志级别、指定 ...

    Log4j日志配置说明,Log4j日志配置说明

    import org.apache.log4j.PropertyConfigurator; public class SetupServlet extends HttpServlet { @Override public void init() { String prefix = getServletContext().getRealPath("/"); String file = ...

    log4j生成带时间戳的日志文件(包括extras包以及简单demo)

    PropertyConfigurator.configure("path/to/log4j.properties"); logger.debug("Debug message"); logger.info("Info message"); logger.warn("Warning message"); logger.error("Error message"); logger....

    log4j之基本配置

    PropertyConfigurator.configure("log4j.properties"); // 根据.xml文件初始化Log4j DOMConfigurator.configure("log4j.xml"); Logger logger = Logger.getLogger(Log4jExample.class); logger.debug("This ...

    log4j-1.2.15-apidocs.rar

    6. **org.apache.log4j.PropertyConfigurator**:用于从属性文件中读取配置并初始化Log4j。 五、实际应用与最佳实践 在实际项目中,合理使用Log4j可以帮助调试、监控和分析程序运行状态。以下是一些最佳实践: 1....

    Log4j使用实例

    配置 Log4j 环境可以通过多种方式进行,常见的有 BasicConfigurator、PropertyConfigurator 和 DOMConfigurator。 - **BasicConfigurator**: 快速配置,默认使用控制台输出。 ```java import org.apache.log4j....

    log4j 介绍

    如果需要自定义配置文件的路径,可以使用DOMConfigurator.configure()来加载log4j.xml文件,或者使用PropertyConfigurator.configure()来加载log4j.properties文件。不过,需要注意的是,目前Log4j 1.x版本的开发者...

    log4j与spring的详细配置。

    2. **自动加载配置**:可以通过`PropertyConfigurator`类自动加载`log4j.properties`文件: ```java PropertyConfigurator.configure("classpath:log4j.properties"); ``` 3. **在代码中使用**:Spring自动注入`...

Global site tag (gtag.js) - Google Analytics