Java 记录日志
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 记录日志的更多相关文章
- top 10 tipis on Logging in Java- Tutorial (翻译)
开篇废话,就记得出国之前有一回腾讯面试,面试官说既然你都快要出国了,英语肯定挺不错的,那为什么不去翻译一些国外好的文章呢,我希望找一个能主动学习的人,一直受教.目前在实习,需要做大数据相关方向,都是挺 ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- JAVA - 优雅的记录日志(log4j实战篇)
写在前面 项目开发中,记录错误日志有以下好处: 方便调试 便于发现系统运行过程中的错误 存储业务数据,便于后期分析 在java中,记录日志有很多种方式: 自己实现 自己写类,将日志数据,以io操作方式 ...
- Java系列:《Java核心技术 卷一》学习笔记,chapter11 记录日志
11.5 日志记录 可以通过Loger.getGlobal().info(xxxx);的方式来记录log. 11.5.2 高级日志 1)通过一个包名来 创建一个新的日志记录器. private sta ...
- (JAVA)从零开始之--打印流PrintStream记录日志文件
这里的记录日志是利用打印流来实现的. 文本信息中的内容为String类型.而像文件中写入数据,我们经常用到的还有文件输出流对象FileOutputStream. File file = new Fil ...
- JAVA - 优雅的记录日志(log4j实战篇) (转)
写在前面 项目开发中,记录错误日志有以下好处: 方便调试 便于发现系统运行过程中的错误 存储业务数据,便于后期分析 在java中,记录日志有很多种方式: 自己实现 自己写类,将日志数据,以io操作方式 ...
- JAVA中使用LOG4J记录日志(转)
在项目开发中,记录错误日志是一个很有必要功能.一是方便调试:二是便于发现系统运行过程中的错误:三是存储业务数据,便于后期分析: 在java中,记录日志,有很多种方式. 比如,自己实现. 自己写类,将日 ...
- Java项目中使用log记录日志的一些总结
本文介绍了一下自己在Java项目中使用log的一些总结,从日志的作用.日志的选用.日志级别介绍.日志记录的一些最佳实践几个方面阐述. 日志的作用 主要作用包括: 1.出问题后定位当时问题 2.显示程序 ...
- JAVA中使用LOG4J记录日志
在项目开发中,记录错误日志是一个很有必要功能.一是方便调试:二是便于发现系统运行过程中的错误:三是存储业务数据,便于后期分析: 在java中,记录日志,有很多种方式. 比如,自己实现. 自己写类,将日 ...
随机推荐
- shell自动收集服务器硬件系统信息
shell自动收集服务器硬件系统信息,插入数据库并通过web页面显示. 一,shell自动收集服务器硬件系统信息,插入数据库.#centos 7操作系统下 #!/bin/bash #auto get ...
- C语言连接mysql -select
C语言实现查询mysql数据库的行数,列的属性,以及每条记录. /* select.c */ #include <stdio.h> #include <stdlib.h> #i ...
- tensorflow session会话控制
import tensorflow as tf # create two matrixes matrix1 = tf.constant([[3,3]]) matrix2 = tf.constant([ ...
- Luogu 4868 Preprefix sum
类似于树状数组维护区间的方法. 每一次询问要求$\sum_{i = 1}^{n}\sum_{j = 1}^{i}a_j$. 展开一下: $\sum_{i = 1}^{n}\sum_{j = 1}^{i ...
- Ubuntu12.04 上使用perl snmpwalk问题
今天在Ubuntu12.04上使用perl来获取snmp数据,运行时出现下列问题.解决方法安装一下libnet-snmp-perl即可.命令行运行:sudo apt-get install libne ...
- 该项目中不存在目标“GatherAllFilesToPublish”
在项目发布的时候报了一个 该项目中不存在目标“GatherAllFilesToPublish” 的奇怪错误,查了之后,在报错的.csproj里面添加 <Target Name="Ga ...
- javascript不用正则验证输入的字符串是否为空(包含空格)
在项目中需要验证输入的字符串是否为空,包括空格,不太喜欢使用正则,所以就想到了js的indexOf函数,indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置,如果要检索的字符串值没 ...
- Unix Tutorial Eight
1.UNIX 变量 变量是在运行时将信息从shell传递到程序的一种方式.程序在特定的变量中查找“在环境中”,如果发现它们将使用存储的值.有些是由系统设置的,另一些是由你设置的,还有一些是由shell ...
- 对于多线程程序,单核cpu与多核cpu是怎么工作的
此文中的大部分资料来自于网络上,我只是觉得把有道理的整理一下,方便以后查阅. 1.多线程在单核和多核CPU上的执行效率问题的讨论a1: 多线程在单cpu中其实也是顺序执行的,不过系统可以帮你切换那个执 ...
- hdu1695(莫比乌斯反演模板)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1695 题意: 对于 a, b, c, d, k . 有 x 属于 [a, b], y 属于 [c, ...