java-使用log4j记录日志

时间 2018/7/29 17:05:43 加载中...

java记录日志

使用apache的log4j来记录日志。


在普通的Maven项目中使用

IDE:Eclipse


pom.xml 文件中添加依赖

  <dependencies>
  
    <!-- http://mvnrepository.com/tags/maven -->
  	<dependency>
	    <groupId>log4j</groupId>
	    <artifactId>log4j</artifactId>
	    <version>1.2.17</version>
	</dependency>
	
  </dependencies>


在 src/main/resources 中添加配置文件 log4j.properties


### set log levels ###
log4j.rootLogger = DEBUG,Console,dailyFile

###  输出到控制台  ###
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern= %d{ABSOLUTE} %5p %c{1}:%L - %m%n


### 输出到日志文件 ###
log4j.appender.File=org.apache.log4j.RollingFileAppender 
log4j.appender.File.File=${project}/app.log
log4j.appender.File.DatePattern=_yyyyMMdd'.log'
log4j.appender.File.MaxFileSize=10MB
log4j.appender.File.Threshold=ALL
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n

log4j.appender.dailyFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyFile.Threshold=DEBUG
log4j.appender.dailyFile.ImmediateFlush=true
log4j.appender.dailyFile.Append=true
log4j.appender.dailyFile.File=D:/log/log.log4j
log4j.appender.dailyFile.DatePattern='.'yyyy-MM-dd
log4j.appender.dailyFile.layout=org.apache.log4j.PatternLayout
log4j.appender.dailyFile.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n


使用方法:

Logger logger = Logger.getLogger(Application.class.getClass());
		
logger.info("info");
logger.debug("debug");

点我看视频

log4j源码下载

http://logging.apache.org/log4j/1.2/source-repository.html

打开网址,我们能够看到源码的获取方法。


log4j-source-code.png


由于是通过 SVN 来获取,所以我们还需要首先安装 TortoiseSVN 工具,使用 TortoiseSVN 代码管理工具将代码下载下来。


下载下来之后,我们就可以使用 eclipse 来打开了。


log4j-use-eclipse-open.png


在 tests/src/java 中,我们可以编写一些测试类,来研究一下源码。


比如在 LogLog.java 文件中有下面一个代码片段:

public class LogLog {

  /**
     Defining this value makes log4j print log4j-internal debug
     statements to <code>System.out</code>.
     
    <p> The value of this string is <b>log4j.debug</b>.
    
    <p>Note that the search for all option names is case sensitive.  */
  public static final String DEBUG_KEY="log4j.debug";



即通过设置  log4j.debug 可以开启 log4j 的内部debug模型。而 log4j.debug 的取值来自


  public
  static
  String getSystemProperty(String key, String def) {
    try {
      return System.getProperty(key, def);
    } catch(Throwable e) { // MS-Java throws com.ms.security.SecurityExceptionEx
      LogLog.debug("Was not allowed to read system property \""+key+"\".");
      return def;
    }
  }


我们可以看到,取值是通过  System.getProperty(key,def); 来获取的。


因此,我们可以设置 System.setProperty("log4j.debug","true"); 来开启内部日志。

扫码分享
版权说明
作者:SQBER
文章来源:http://blog.sqber.com/articles/java-use-log4j-record-log.html
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。