zoukankan      html  css  js  c++  java
  • Java 记录日志

    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.1injava.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:52275,suspend=y,server=n -javaagent:C:Userschy.IntelliJIdea2019.1systemcaptureAgentdebugger-agent.jar -Dfile.encoding=UTF-8 -classpath "D:疯狂Java讲义untitledoutproductionuntitled;C:Program FilesJetBrainsIntelliJ IDEA 2019.1.1libidea_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>

  • 相关阅读:
    Android ConstraintLayout详解
    Android开发屏幕适配解决方
    高并发场景下的一种JVM GC优化配置【CMS】
    Runnable 和 Callable的区别
    理解对象实例化顺序
    mysql 优化原理【转】
    使用@Scheduled注解编写spring定时任务
    Spring加载resource时classpath*:与classpath:的区别
    Java 8 中的 Streams API 详解
    java 8 函数式接口
  • 原文地址:https://www.cnblogs.com/chy18883701161/p/10860102.html
Copyright © 2011-2022 走看看