现在项目中,大多用log4j等第三方日志框架,用这些框架确实有原因,而且确实配置简单,好用。因为一个传统项目不想用第三方日志框架,想用jdk自带的日志来记录日志,所以总结了下经验,希望对大家有所帮助。本文讲解的是不用自写工具类,简单几个步骤就完成日志的记录。
步骤:1.创建 Logger logger;在网上查阅了相关资料,这个步骤对下面的步骤很重要。
2.创建 FileHandler fileHandler 定义日志文件保存的路径和日志文件生成的规则,很简单的。
3.FileHandler fileHandler=new FileHandler("E:\\Log\\JDKLog1"+"\\"+sdf.format(new Date())+".log",true);官方标配工具。
logger.addHandler(fileHandler);//日志输出文件 这个步骤必须要有,不然无法生成日志文件。
4.定义日志级别输出信息就可以了,logger.log(Level.INFO, e.toString());
5.fileHandler.setFormatter(new SimpleFormatter());//输出格式 第五步,只是为了定义输出日志的格式,实现前四步就可以生成日志文件,亲测有效的!
很简单的步骤,只是为了给大家提供另一种日志生成方式,不喜勿喷,都是相互学习。
源码如下 :
package pac.com.pac;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
import javax.sound.midi.MidiDevice.Info;
import org.junit.Test;
/**
*
* <p>Title: TestLoger2 </p>
* <p>Description: </p>
* @author Administrator
* @date 2019年5月18日
*/
public class TestLoger2 {
private static Logger logger=Logger.getLogger(TestLoger2.class.getName());
@Test
public void test05() throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
int i=1/0;
} catch (Exception e) {
FileHandler fileHandler=new FileHandler("E:\\Log\\JDKLog1"+"\\"+sdf.format(new Date())+".log",true);
logger.addHandler(fileHandler);//日志输出文件
//logger.addHandler(new ConsoleHandler());//输出到控制台
//logger.setLevel(Level.ALL);
fileHandler.setFormatter(new SimpleFormatter());//输出格式
logger.log(Level.INFO, e.toString());
}
}
}
原文地址:https://www.cnblogs.com/bcsdn/p/10886836.html