无论是在服务器上配置log4j还是在本地 配置 log4j 都是一样的
1.首先一定要导入log4j包 log4j-1.2.9.jar
2、然后 一定有一个 配置文件通常我放在src下 名字为(log4j.properties) 里面的内容大体都是一个结构 如下:
3、配置log4j.properties
log4j.logger.Log4j_taskDAO=INFO,test //这里的Log4j_taskDAO是自己随便定义的名字 也就是我们在某个类中想要通过log4j进行查看错误时调用的名字 这里的test也是自己定义的 也就是下面 (log4j.appender.test) 中的test
log4j.additivity.org.apache=false
log4j.appender.test=org.apache.log4j.DailyRollingFileAppender
log4j.appender.test.Threshold=DEBUG
log4j.appender.test.ImmediateFlush=true
log4j.appender.test.Append=true
log4j.appender.test.Encoding=UTF-8
log4j.appender.test.File=/www/log4j.txt //这里面是定义当前的 log4j 的存放路径
log4j.appender.test.DatePattern='.'yyyy-MM-dd
log4j.appender.test.layout=org.apache.log4j.PatternLayout
log4j.appender.test.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l\: %m %x %n
以上是log4j在配置文件中的 写法
4、然后我们就要调用这个log4j了 当我们在某个类中想调用这个log4j的时候 写法如下:
public static Logger logger = Logger.getLogger("Log4j_taskDAO"); 这里的log4j_taskDAO 就是配置文件中 定义的 //这句相当于 初始化 一样 //这句话一般放在类中 不放在方法中
5、将需要的 信息 打入 所配置的路径下
然后如果我们想打印当前log4j中的问题时候 这样写logger.info("aaa");
一般通过try catch 去写入日志 下面有个例子
public static void main(String [] args) {
//Log logger = LogFactory.getLog(test_1.class);
Logger logger = Logger.getLogger("logFile");
Scanner scan=new Scanner(System.in);
String str =scan.next();
int Num=0;
try {
Num = Integer.parseInt(str);
logger.info("成功插入数字"+Num);
} catch (NumberFormatException e) { //捕获异常,并且处理
logger.error(e);
System.out.println("你输入的是非法数字");
}
System.out.println("你输入的是整数"+Num);
}
或者 自己写一个方法
/*
* 写入日志文件
* @param logfile 日志文件路径名称
* @param content 写入内容
* @return void
*/
public static void writelog(String logfile,String content){
try {
OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(new File(logfile),true),"UTF-8");
BufferedWriter writer=new BufferedWriter(write);
writer.write(content);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
以上就是log4j的用法了 一般用于在服务器上 查询错误