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中,记录日志,有很多种方式. 比如,自己实现. 自己写类,将日 ...
随机推荐
- Centos6.5_64位系统下安装Oracle 11g
一.硬件要求 1.内存与Sweap:内存2G(以上),Sweap 2G(以上) 内存: 1-2G 2-16G 16G以上 Sweap: 1.5倍内存 1倍内存 16G 检查:# grep MemTot ...
- 【总结整理】javascript进阶学习(慕课网)
数组 数组是一个值的集合,每个值都有一个索引号,从0开始,每个索引都有一个相应的值,根据需要添加更多数值. 二维数组 二维数组 一维数组,我们看成一组盒子,每个盒子只能放一个内容. 一维数组的表示: ...
- Hadoop的namenode和secondnamenode分开部署在不同服务器
一.系统环境: Hadoop 0.20.2.JDK 1.6.Linux操作系统 二.使用背景 网上关于Hadoop的集群配置,很多情况下,都是把namenode和secondnamenode部署在 ...
- 6.5 系统打开缓慢,怎么办?---更新Ubuntu系统
早早的来公司打开电脑,希望看到Ubuntu能启动成功.可是,当我重启后,使用Ubuntu系统,打开界面速度非常慢,当时,又怀疑自己安装出错了.而且,6.2日Ubuntu系统的工作日志又没了.无奈,我把 ...
- C# -- 继承规则
例子1--C#继承的常见问题: using System; using System.Collections.Generic; using System.Linq; using System.Text ...
- Asp.Net 遍历 循环 显示所有COOKIS,SESSION,Applocation
在C#中循环显示SESSIOn: Response.Write("<br>Session的所有值:<br>"); foreach (string obj i ...
- Golang : cobra 包解析
笔者在<Golang : cobra 包简介>一文中简要的介绍了 cobra 包及其基本的用法,本文我们从代码的角度来了解下 cobra 的核心逻辑. Command 结构体 Comman ...
- c#中ToString("yyyyMMdd") 与ToString("yyyymmdd")区别
string a= DateTime.Now.ToString("yyyyMMdd") ; string b=DateTime.Now.ToString("yyyymmd ...
- 没有找零 状压dp
没有找零 状压dp 约翰到商场购物,他的钱包里有K(1 <= K <= 16)个硬币,面值的范围是1..100,000,000.约翰想按顺序买 N个物品(1 <= N <= 1 ...
- 1、gitlab的理论知识
2.1 svn与git对比 . svn git 分布式 不是 是 在线阅读 不支持 不仅支持,而且可以在线编辑 存储方式 按文件 按元数据 完整性 一般 优 离线工作 日志都没法看 完全没问题 分支 ...