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. centos7安装与配置ansible

    此次测试总共有三台机,分别如下: ansible服务器:10.0.0.20 client01:10.0.0.21 client02:10.0.0.22 一.安装ansible 1. python版本需 ...

  2. MySql数据库数据更新操作其高级应用

    数据更新操作有3种:向表中添加数据.修改表中的数据和删除表中的数据. 用来演示的数据表用student.course.sc三个数据表,数据表具体内容在:PHP和MySql数据库,如何获取每个分类的记录 ...

  3. Frequent Pattern 挖掘之二(FP Growth算法)

    Frequent Pattern 挖掘之二(FP Growth算法) FP树构造 FP Growth算法利用了巧妙的数据结构,大大降低了Aproir挖掘算法的代价,他不需要不断得生成候选项目队列和不断 ...

  4. redis系列:RDB持久化与AOF持久化

    前言 什么是持久化? 持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘).持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中.XML数 ...

  5. java线程基础知识----java daemon线程

    java线程是一个运用很广泛的重点知识,我们很有必要了解java的daemon线程. 1.首先我们必须清楚的认识到java的线程分为两类: 用户线程和daemon线程 A. 用户线程: 用户线程可以简 ...

  6. jqGrid 跨页选择以及回显的处理

    思路:定义全局的array(selectedIds),当列表选中的时候就push进去,当列表取消选中时,将该项从selectedIds中删除 重点:1.列表加载完成时为列表增加复选框,并给每一个che ...

  7. Logstash过滤插件

    filter初级 Logstash安装 ### 设置YUM源 # rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch # t ...

  8. css 实现三级联动菜单

    昨天因为项目中想要把二级联动菜单改成三级联动菜单,所以我就单独写了一个tab导航栏,用纯css的方式实现的三级联动.一开始我想着可以用js实现,但是js的hover事件和mouseenter,mous ...

  9. PHP-CGI远程任意代码执行漏洞(CVE-2012-1823)修复方案

    首先介绍一下这个漏洞,其实是在apache调用php解释器解释.php文件时,会将url参数传我给php解释器,如果在url后加传命令行开关(例如-s.-d .-c或  -dauto_prepend_ ...

  10. > Task :app:transformDexArchiveWithExternalLibsDexMergerForDebug FAILED

    > Task :app:transformDexArchiveWithExternalLibsDexMergerForDebug FAILED D8: Cannot fit requested ...