在log4j中,通常采用将要输出的信息显示在控制台和写文件
log4j.properties的配置文件如下:
public final static int ;
# 记录日志的级别,只有当要写的级别 >= 给定的级别(INFO,DEBUG,WARN,ERROR,FATAL) 才写到文件中
# console 控制台输出名称
# file 文件名称
log4j.rootLogger=ERROR,console,file
# 控制台输出格式
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.SimpleLayout
############文件操作格式
#log4j备份文件名称
log4j.appender.file.File=log/synclog.txt
##指定可以灵活控制输出方式、输出格色
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%t %p %m%n
#文件到达一定数量后。自动备份
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.maxFileSize=5000000
log4j.appender.file.maxBackupIndex=100
# 每天备份,##备份日期格色
#log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.file.datePattern = '.'yyyy.MM.dd
##指定继续写文件
#log4j.appender.file=org.apache.log4j.WriterAppender
#log4j.appender.file.os=org.apache.log4j.WriterAppender
Log.java 的配置文件如下:
package com.hode.log4j;
import org.apache.log4j.*;
import java.util.Calendar;
public class Log
{
public final static int INFO=1;
public final static int DEBUG=2;
public final static int WARN=3;
public final static int ERROR=4;
public final static int FATAL=5;
//创建log事例,记录变量是 logger
static Logger logger=Logger.getLogger("logger");
//创建log事例,记录变量是 logger1
static Logger logger1=Logger.getLogger("logger1");
public static void writeLog(String str,int Type)
{
PropertyConfigurator.configure("config/log4j.properties");
Calendar dtm=Calendar.getInstance();
str=dtm.getTime()+" "+str;
logger1.setLevel((Level) Level.INFO);
switch(Type)
{
case INFO:
logger.info(str);
logger1.info(str);
break;
case DEBUG:
logger.debug(str);
logger1.debug(str);
break;
case WARN:
logger.warn(str);
logger1.warn(str);
break;
case ERROR:
logger.error(str);
logger1.error(str);
break;
case FATAL:
logger.fatal(str);
logger1.fatal(str);
break;
}
}
public static void main(String[] args)
{
Log.writeLog("######1111",Log.WARN);
}
}
如果2个创建的事例是一样,那么写成的文件就2个
static Logger logger=Logger.getLogger("logger");
static Logger logger1=Logger.getLogger("logger");
那么logger1,logger都执行
如果2个创建的事例不一样,那么写成的文件就1个
static Logger logger=Logger.getLogger("logger");
static Logger logger1=Logger.getLogger("logger1");
那么logger1执行,logger不执行