欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java 记录日志

程序员文章站 2022-04-09 07:51:46
Java9的日志级别: ALL 最低级别,系统会输出所有的日志信息,会生成大量的·、冗余的日志 TRACE 输出系统的各种跟踪信息,会生成大量的·、冗余的日志 DEBUG 输出调试信息,会生成较多的日志 INFO 输出系统提示用户的信息 WARNING 输出警告信息 ERROR 输出错误信息 OFF ......

 

java9的日志级别:

all  最低级别,系统会输出所有的日志信息,会生成大量的·、冗余的日志

trace  输出系统的各种跟踪信息,会生成大量的·、冗余的日志

debug  输出调试信息,会生成较多的日志

info  输出系统提示用户的信息

warning  输出警告信息

error  输出错误信息  

off  关闭日志输出(不记录日志)

以上级别由低到高。

 

设置日志级别为某一级时,低于该级别的日志都不会输出,只输出该级别、高于该级别的日志。

 

示例:

 1 package test;
 2 
 3 import java.io.ioexception;
 4 import java.util.logging.filehandler;
 5 import java.util.logging.level;
 6 import java.util.logging.logger;
 7 
 8 public class test{
 9        public static void main(string[] args) throws ioexception {
10               //设置使用a.xml文件保存日志,会在项目的根目录下生成一个a.xml文件来保存日志。也可指定其他目录。
11               // "fkjava"是特定的字符串。
12               logger.getlogger("fkjava").addhandler(new filehandler("a.xml"));
13               //设置日志级别为warning,低于warning的日志都会被忽略
14               logger.getlogger("fkjava").setlevel(level.warning);
15               //使用system的静态方法获取system.logger对象,用于输出日志
16               system.logger logger=system.getlogger("fkjava");
17               //输出一条日志,第一个参数设置此条日志的级别,第二个参数为string,设置要输出的日志信息。
18               // 由于debug低于设置的warning,所以此条日志会被忽略(不会被输出到a.xml文件)
19               logger.log(system.logger.level.debug,"debug信息");
20               //debug、run时,会在控制台输出此条日志,“警告:warning信息",冒号后面是第二个参数的内容
21               //同时会输出此条日志到a.xml文件中
22               logger.log(system.logger.level.warning,"warning信息");
23               logger.log(system.logger.level.error,"error信息");
24        }
25 }

 

debug/run,控制台输出如下:

d:\jdk-12.0.1\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:52275,suspend=y,server=n -javaagent:c:\users\chy\.intellijidea2019.1\system\captureagent\debugger-agent.jar -dfile.encoding=utf-8 -classpath "d:\疯狂java讲义\untitled\out\production\untitled;c:\program files\jetbrains\intellij idea 2019.1.1\lib\idea_rt.jar" test.test
connected to the target vm, address: '127.0.0.1:52275', transport: 'socket'
java hotspot(tm) 64-bit server vm warning: sharing is only supported for boot loader classes because bootstrap classpath has been appended
5月 14, 2019 2:20:35 上午 test.test main
警告: warning信息
5月 14, 2019 2:20:35 上午 test.test main
严重: error信息
disconnected from the target vm, address: '127.0.0.1:52275', transport: 'socket'

process finished with exit code 0

 

a.xml文件记录的日志如下:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!doctype log system "logger.dtd">
<log>
<record>
  <date>2019-05-13t18:20:35.025273100z</date>
  <millis>1557771635025</millis>
  <nanos>273100</nanos>
  <sequence>0</sequence>
  <logger>fkjava</logger>
  <level>warning</level>
  <class>test.test</class>
  <method>main</method>
  <thread>1</thread>
  <message>warning信息</message>
</record>
<record>
  <date>2019-05-13t18:20:35.164415700z</date>
  <millis>1557771635164</millis>
  <nanos>415700</nanos>
  <sequence>1</sequence>
  <logger>fkjava</logger>
  <level>severe</level>
  <class>test.test</class>
  <method>main</method>
  <thread>1</thread>
  <message>error信息</message>
</record>
</log>

 

日志根元素为<log>

一条日志的根元素为<record>

日志登记为<level>

日志信息为<message>