import java.net.URL;
import org.apache.log4j.Hierarchy;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.spi.LoggerRepository;
import org.apache.log4j.spi.RootLogger;
/**
*
* @author think
*
*/
public class Custom2LogFactory {
//日志仓库实例
static LoggerRepository h = new Hierarchy(new RootLogger(Level.ALL));
static URL urlConfigFile = Custom2LogFactory.class.getResource("/log4j2.properties");//"log4j2.properties";
static {
//配置文件定制日志仓库属性,这里面你可以做更多的文章
//来定义自己的配置文件位置等等
new PropertyConfigurator().doConfigure(urlConfigFile, h);
}
public static Logger getLogger(String loggerName) {
return h.getLogger(loggerName);
}
}
---
log4j2.properties
### direct log messages to 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=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### direct messages to file hibernate.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=Alog4j.log
#log4j.appender.file.Threshold=ERROR
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### set log levels - for more verbose logging change 'info' to 'debug' ###
log4j.rootLogger=INFO, stdout,file
#log4j.logger.log4j=info
----------------
test
package log4j;
import org.apache.log4j.Logger;
public class TestLog4j2 {
// static Logger log = Logger.getLogger(TestLog4j2.class.getName());
// static Logger logger = CustomLogFactory.getLogger(TestLog4j2.class.getName());
Logger logger2 = Custom2LogFactory.getLogger(this.getClass().getName());
void show()
{
log.info("default");
logger.info("test my log");
logger2.warn(" my log2 warm");
logger2.info(" my log2 info");
}
public Logger getLoger(String className)
{
logger = CustomLogFactory.getLogger(className);
return logger;
}
public static void main(String[] args) {
new TestLog4j2().show();
}
}
其他配置文件
### set log levels ###
log4j.rootLogger = debug , stdout , D , E
### 输出到控制台 ###
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 = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n
### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG ## 输出DEBUG级别以上的日志
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 保存异常信息到单独文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/error.log ## 异常日志文件名
log4j.appender.D.Append = true
log4j.appender.D.Threshold = ERROR ## 只输出ERROR级别以上的日志!!!
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/newhappy2008/archive/2008/05/31/2499250.aspx