在完成软件构造实验Lab4的过程中,实验要求完成对java日志的创建。最开始我以为这是java自带的功能,并没有太在意,在写到这个部分的时候,发现这个还需要细细研究。实现java日志的记录有很多方式:JDK Logging,Log4j,SLF4J等。由于实验推荐jdk自带的logging且Log4j前期配置比较麻烦,所以我尝试使用JDK Logging来完成日志的创建。
在查找相关资料后,我了解到Logging的一些相关操作方式,我将一些需要注意的点和操作其总结如下:
注意:
日志的输出可以设定级别。JDK的Logging定义了7个日志级别,从严重到普通:
SEVERE
WARNING
INFO
CONFIG
FINE
FINER
FINEST
因为默认级别是INFO,因此,INFO级别以下的日志,不会被打印出来。使用日志级别的好处在于,调整级别,就可以屏蔽掉很多调试相关的日志输出。

操作有:

1.首先获取调用日志记录的类的名称

static String strclassname=你的类.class.getName();

2.初始化一个logger

static Logger mylogger= Logger.getLogger(strclassname);

3.初始化一个 FileHandler 指针

FileHandler fh=null;

4.还可以设置logger记录的信息是否在控制台上输出

mylogger.setUseParentHandlers(false);//让logger信息不在控制台输出,true即为在控制台输出

5.设置要写入的文件

fh = new FileHandler("....你的路径Logger.log",true);

6.设置你所要设置的写入文件的日志格式

fh.setFormatter(new MyFileFormatter());//其中new MyFileFormatter()是你需要自己设计的格式类,这里不做详细解释

7.最后将此日志信息写入文件

mylogger.addHandler(fh);
                mylogger.info("你所需要用日志记录的信息");
                fh.close();//关掉日志文本

8.这样就成功实现了将日志记录进文件了

Lab4实验中的具体实现:

private final static Logger logger = Logger.getLogger(FlightScheduleApp.class.getName()); 
Locale.setDefault(new Locale("en", "EN"));  //配置日志的输出语言为英文
logger.setLevel(Level.INFO); //设置日志显示信息的最低级别(即包括了 INFO, WARNING 和 SEVERE)
FileHandler fileHandler;   
fileHandler = new FileHandler("log/FlightScheduleLog.txt", true); //对logger 配置加入相应的文件管理,使得日志可以写入到文件中
fileHandler.setFormatter(new SimpleFormatter());
logger.addHandler(fileHandler);	
logger.setUseParentHandlers(false);  //文件管理handler配置好文件写入的格式,采用SimpleFormatter格式文件
......
......
logger.log(Level.INFO,"true:setplanningentryname,计划项"+flightname);  //遇到操作读入日志
logger.log(Level.SEVERE,"flase:setlocation,SameLocationException->operation again,计划项"+flightname,e2);

最后就完成了相关日志文件的创建,里面储存有日志

java log 存储分析 java logging_java log 存储分析


java log 存储分析 java logging_java_02