Java9的日志级别:

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

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

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

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

WARNING  输出警告信息

ERROR  输出错误信息  

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

以上级别由低到高。

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

示例:

 package test;

 import java.io.IOException;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger; public class Test{
public static void main(String[] args) throws IOException {
//设置使用a.xml文件保存日志,会在项目的根目录下生成一个a.xml文件来保存日志。也可指定其他目录。
// "fkjava"是特定的字符串。
Logger.getLogger("fkjava").addHandler(new FileHandler("a.xml"));
//设置日志级别为WARNING,低于WARNING的日志都会被忽略
Logger.getLogger("fkjava").setLevel(Level.WARNING);
//使用System的静态方法获取System.Logger对象,用于输出日志
System.Logger logger=System.getLogger("fkjava");
//输出一条日志,第一个参数设置此条日志的级别,第二个参数为String,设置要输出的日志信息。
// 由于DEBUG低于设置的WARNING,所以此条日志会被忽略(不会被输出到a.xml文件)
logger.log(System.Logger.Level.DEBUG,"debug信息");
//debug、run时,会在控制台输出此条日志,“警告:warning信息",冒号后面是第二个参数的内容
//同时会输出此条日志到a.xml文件中
logger.log(System.Logger.Level.WARNING,"warning信息");
logger.log(System.Logger.Level.ERROR,"error信息");
}
}

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

D:\jdk-12.0.\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:,suspend=y,server=n -javaagent:C:\Users\chy\.IntelliJIdea2019.\system\captureAgent\debugger-agent.jar -Dfile.encoding=UTF- -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) -Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
5月 , :: 上午 test.Test main
警告: warning信息
5月 , :: 上午 test.Test main
严重: error信息
Disconnected from the target VM, address: '127.0.0.1:52275', transport: 'socket' Process finished with exit code

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>

Java 记录日志的更多相关文章

  1. top 10 tipis on Logging in Java- Tutorial (翻译)

    开篇废话,就记得出国之前有一回腾讯面试,面试官说既然你都快要出国了,英语肯定挺不错的,那为什么不去翻译一些国外好的文章呢,我希望找一个能主动学习的人,一直受教.目前在实习,需要做大数据相关方向,都是挺 ...

  2. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  3. JAVA - 优雅的记录日志(log4j实战篇)

    写在前面 项目开发中,记录错误日志有以下好处: 方便调试 便于发现系统运行过程中的错误 存储业务数据,便于后期分析 在java中,记录日志有很多种方式: 自己实现 自己写类,将日志数据,以io操作方式 ...

  4. Java系列:《Java核心技术 卷一》学习笔记,chapter11 记录日志

    11.5 日志记录 可以通过Loger.getGlobal().info(xxxx);的方式来记录log. 11.5.2 高级日志 1)通过一个包名来 创建一个新的日志记录器. private sta ...

  5. (JAVA)从零开始之--打印流PrintStream记录日志文件

    这里的记录日志是利用打印流来实现的. 文本信息中的内容为String类型.而像文件中写入数据,我们经常用到的还有文件输出流对象FileOutputStream. File file = new Fil ...

  6. JAVA - 优雅的记录日志(log4j实战篇) (转)

    写在前面 项目开发中,记录错误日志有以下好处: 方便调试 便于发现系统运行过程中的错误 存储业务数据,便于后期分析 在java中,记录日志有很多种方式: 自己实现 自己写类,将日志数据,以io操作方式 ...

  7. JAVA中使用LOG4J记录日志(转)

    在项目开发中,记录错误日志是一个很有必要功能.一是方便调试:二是便于发现系统运行过程中的错误:三是存储业务数据,便于后期分析: 在java中,记录日志,有很多种方式. 比如,自己实现. 自己写类,将日 ...

  8. Java项目中使用log记录日志的一些总结

    本文介绍了一下自己在Java项目中使用log的一些总结,从日志的作用.日志的选用.日志级别介绍.日志记录的一些最佳实践几个方面阐述. 日志的作用 主要作用包括: 1.出问题后定位当时问题 2.显示程序 ...

  9. JAVA中使用LOG4J记录日志

    在项目开发中,记录错误日志是一个很有必要功能.一是方便调试:二是便于发现系统运行过程中的错误:三是存储业务数据,便于后期分析: 在java中,记录日志,有很多种方式. 比如,自己实现. 自己写类,将日 ...

随机推荐

  1. javascript数字千分分隔符

    function thousandBitSeparator(num) { num=num.toFixed(2); return num && num .toString() .repl ...

  2. Mach系统

    ——杂言:最近升级了把山狮升级到了10.9mavericks,比较抓我注意力的就是新的活动监视器.新的监视器里对统计分类很严,双击某一进程,即可跳出一个详情对话框.其中里面就有记录着Mach相关的信息 ...

  3. MySql中的锁(表锁,行锁)

    锁是计算机协调多个进程或春线程并发访问某一资源的机制.在数据库中,除传统的计算资源(CPU,RAM,I/O)的争用之外,数据也是一种工许多用户共享的资源.如何保证数据并发访问的一致性,有效性是所有数据 ...

  4. 6.wireshark使用全解

    开始之前先推荐一个wireshark视频: http://www.shiyanbar.com/course-video/watchVideo/cid/419/vid/2001 页面功能简介 1.主界面 ...

  5. MIC-3395单板机不识别PCI设备

    硬件环境: 单板机:MIC-3395 外设设备:自研的DSP6678板卡 现象: MIC-3395单板机不能识别DSP6678板卡,但是在MIC-3392上能够正常识别,排查若干问题后,升级3395的 ...

  6. javascript 操作符小结

    简单总结一下JavaScript的几个操作符: var. in. delete. typeof. new. instanceof.void var 定义变量要使用var操作符, 使用var操作符定义的 ...

  7. c# 窗体启动后自动执行 Form_Load事件注册及调用

    很多时候我们需要在程序一开始后立即触发执行一些程序.这时候需要调用Form_Load. 首先编写事件程序块,编写完后即可再里面添加需要执行的代码. 在结构体之后写就行.添加之前的代码如下: using ...

  8. Codeforces - 102222A - Maximum Element In A Stack - 模拟

    https://codeforc.es/gym/102222/problem/F 注意到其实用unsigned long long不会溢出. #include<bits/stdc++.h> ...

  9. 【转】C#里partial关键字的作用

    源地址:http://www.cnblogs.com/OpenCoder/archive/2009/10/27/1590328.html

  10. 消息中间件的研究 (四)RabbitMQ、Kafka、RocketMQ消息中间件的对比及分析

    RabbitMQ:     RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现.AMQP的主要特征是面向消息.队列.路由(包括点对点和发布/订阅).可靠性.安全.AM ...