引用的类
import java.util.logging.*;
创建方法
private static Logger logger = Logger.getLogger(ReadFromFile.class.getName());
//在·此类建立一个日志
String path = System.getProperty("user.dir")+"\\src\\data\\Logging\\testlog3.log";
//建立输出文件地址字符串
//System.getProperty("user.dir")是获取到项目当前地址的动态字符串
FileHandler fileHandler = new FileHandler(path);
// FileHandler打开此文件
//fileHandler.setFormatter(new MyLogFormat());//自己的格式
fileHandler.setFormatter(new SimpleFormatter());//官设格式
logger.addHandler(fileHandler);
//将其引入到log中
logger.log(Level.INFO,"Start Writing to File..");
//开始记录...方法1
logger.info("Read Successfuly.");
//开始记录...方法2
logger的等级
log4j有等级之分,具体分为
fatal - 严重的,造成服务中断的错误;
error - 其他错误运行期错误;
warn - 警告信息,如程序调用了一个即将作废的接口,接口的不当使用,运行状态不是期望的但仍可继续处理等;
info - 有意义的事件信息,如程序启动,关闭事件,收到请求事件等;
debug - 调试信息,可记录详细的业务处理到哪一步了,以及当前的变量状态;
trace - 更详细的跟踪信息;
这些等级由重到轻,如果语句是set到warn级别,那么info及以下的信息是不会输出的。认清级别就很重要,可以使用set方法来对Logger类型变量进行等级设置。
logger的输出
logger的输出是有固定格式的。这篇文章给出的代码,没有被注释掉的就是标准输出。输出了CST时间、类、方法名、异常情况或是输出信息。
使用备注十点的语句可以自己设置其格式。
例如如下代码:
class MyLogFormat extends Formatter{
@Override
public String format(LogRecord record) {
return record.getMillis() +" "+ record.getSourceClassName() +" "+ record.getSourceMethodName() + "\r\n" + record.getLevel() + ":" + record.getMessage() + "\r\n";
}
会产生自己设置的输出。