返回顶部
首页 > 资讯 > 精选 >怎么在Java中记录Log
  • 613
分享到

怎么在Java中记录Log

2023-06-15 09:06:30 613人浏览 独家记忆
摘要

这期内容当中小编将会给大家带来有关怎么在Java中记录Log,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、System.out.println(最简单)输出到控制台:System.out.printl

这期内容当中小编将会给大家带来有关怎么在Java中记录Log,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

一、System.out.println(最简单)

输出到控制台:System.out.println("XXX");
2、输出到指定文件:

import java.io.PrintStream; PrintStream ps = new PrintStream("D:\\test.txt");System.setOut(ps);System.out.println("XXX");

二、java.util.logging(相对简单)

jdk自带的logging.jar中的方法。通过位于JDK安装路径下的jre/lib/logging.properties文件进行配置。

1、默认配置如下:

handlers= java.util.logging.ConsoleHandler .level= INFO # default file output is in user's home directory.java.util.logging.FileHandler.pattern = %h/java%u.logjava.util.logging.FileHandler.limit = 50000java.util.logging.FileHandler.count = 1java.util.logging.FileHandler.fORMatter = java.util.logging.XMLFormatter # Limit the message that are printed on the console to INFO and above.java.util.logging.ConsoleHandler.level = INFOjava.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

默认是输出到控制台,如果既想在控制台,又想在文件中,要修改如下配置:

handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler

Logger的级别按降序排序如下:

  • SEVERE(最高值)

  • WARNING

  • INFO 

  • CONFIG 

  • FINE 

  • FINER 

  • FINEST(最低值)

默认所有log的输出级别是INFO(.level= INFO),比INFO更低的日志不会显示。
控制台的Log输出级别可以特殊控制,默认也是INFO,可以修改如下配置:

java.util.logging.ConsoleHandler.level = INFO

2、实例

(1)输出到控制台:

Logger log = Logger.getLogger("testLog"); log.setLevel(Level.WARNING);log.warning("xxxx testLog warning");

输出结果:

怎么在Java中记录Log

(2)输出到文件:

FileHandler fileHandler;//文件控制器try {    fileHandler = new FileHandler("D:\\temp\\text.log");fileHandler.setLevel(Level.INFO);fileHandler.setFormatter(new Formatter() {//定义一个匿名类         //Formatter 接受 LogRecord,并将它转换为一个字符串。          @Override         public String format(LogRecord record) {                          Date date = new Date();               String sDate = date.toString();               return "[" + sDate + "]" + "[" + record.getLevel() + "]" + ":" +  record.getMessage() + "\n";           }    }); Logger log = Logger.getLogger("testLog");log.addHandler(fileHandler); log.info("aaa"); } catch (SecurityException e) {    e.printStackTrace();} catch (IOException e) {    e.printStackTrace();}

默认状况下, 日志会打印到控制台。添加 filehandler 后, 会同时写入文件。输出结果:

怎么在Java中记录Log
怎么在Java中记录Log

三、log4j(最强大)

可以通过配置 .properties 或是 .xml 的文件, 配置日志的目的地,格式等等。具体配置不在此处详述。

1、Log4J的输出级别按降序排序如下:

  • OFF             最高等级,关闭日志

  • FATAL          可能导致应用中止的严重事件错误 

  • ERROR       严重错误,主要是程序错误 

  • WARN         一般警告 

  • INFO           一般显示信息 

  • DEBUG       调试信息 

  • TRACE        比DEBUG更细粒度的事件信息 

  • ALL              最低等级

2、实例

import org.apache.log4j.Logger;public class Log4jTest {     private static Logger log = Logger.getLogger(Log4jTest.class);    public void log() {        log.info("hello this is log4j info log");    }     public static void main(String[] args) {        Log4jTest test = new Log4jTest();        test.log();    }}

除了上述几种,还存在logback等其他的日志框架,对于开发者而言,每种日志都有不同的写法。如果以实际的日志框架来进行编写,之后更换日志系统就很麻烦。

由此诞生了以下的门面类日志框架(它们都不是日志的最终实现,只是一套规范),将系统和具体的日志实现框架解耦合。

怎么在Java中记录Log

四、commons-logging(全称:Jakarta Commons Logging

commons-logging是为那些需要建立在不同环境下使用不同日志架构的组件或库的开发者创建的,由commons-logging在运行时决定使用哪种日志架构。

默认的LogFactory是按照下列的步骤去发现并决定那个日志工具将被使用的(按照顺序,寻找过程会在找到第一个工具时中止):

  • 首先在classpath下寻找自己的配置文件commons-logging.properties,使用其中定义的Log实现类;

  • 找不到commons-logging.properties文件,则在查找是否已定义系统环境变量org.apache.commons.logging.Log,使用其定义的Log实现类;

  • 否则,查看classpath中是否有Log4j的包,有则自动使用Log4j作为日志实现类;

  • 否则,使用JDK自身的日志实现类(JDK1.4以后才有日志实现类);

  • 否则,使用commons-logging自己提供的一个简单的日志实现类SimpleLog;

在common-logging.properties文件中设置实现Log接口的类:

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

commons-logging结合Log4J的实例

import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory; public class JCLTest {     private static Log log = LogFactory.getLog(JCLTest.class);    public void log() {              log.info("hello this is JCL info log");    }     public static void main(String[] args) {       JCLTest test = new JCLTest();       test.log();    }}

五、slf4j(全称:Simple Logging Facade for Java,简单日志门面

SLF4j+Log4j 与 JCL+Log4J 的使用方式差不多,主要差异就在 SLF4J 用 jar 来告知用哪种日志实现,而 JCL 是通过配置文件来获得该选择哪个日志实现。

实例

import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class Test {     private static final Logger log = LoggerFactory.getLogger(Test.class);    public void test() {        log.info("hello this is {} info log", "SLF4J");    }}

上述就是小编为大家分享的怎么在Java中记录Log了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。

--结束END--

本文标题: 怎么在Java中记录Log

本文链接: https://lsjlt.com/news/279284.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么在Java中记录Log
    这期内容当中小编将会给大家带来有关怎么在Java中记录Log,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、System.out.println(最简单)输出到控制台:System.out.printl...
    99+
    2023-06-15
  • 详解记录Java Log的几种方式
    目录一、System.out.println(最简单) 二、java.util.logging(相对简单) 三、log4j(最强大) 四、commons-logging(全称:Jak...
    99+
    2024-04-02
  • 怎么用vbs清空iis log中自己登录ip的记录
    这篇文章主要介绍了怎么用vbs清空iis log中自己登录ip的记录,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Option Explicit  Dim...
    99+
    2023-06-08
  • Django中log日志记录的最佳实践
    目录1、模块总览2、Loggers3、Handlers4、Filters5、Formatters6、日志记录方式7、logger 参数解析8、handler 参数解析1.Rotati...
    99+
    2023-05-17
    Django项目中日志记录 django 中如何优雅的记录日志 django配置log日志
  • 怎么在数据库中添加记录
    怎么在数据库中添加记录?可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。向数据库中添加记录的sql命令是INSERT INTO。INSERT INTO ...
    99+
    2024-04-02
  • 怎么在python中配置日志记录器
    怎么在python中配置日志记录器?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫...
    99+
    2023-06-14
  • 怎么在python中利用 loguru记录日志
    本篇文章为大家展示了怎么在python中利用 loguru记录日志,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python有哪些常用库python常用的库:1.requesuts;2.scrapy...
    99+
    2023-06-14
  • navicat怎么在表中添加数据记录
    在 navicat 中添加表数据记录的步骤:打开表,点击“添加”按钮。输入每个字段的值。选择外键相关的记录。点击“保存”按钮插入数据记录。 如何使用 Navicat 在表中添加数据记录...
    99+
    2024-04-23
    navicat
  • 怎么使用java添加记录
    使用Java添加记录的基本步骤如下:1. 连接数据库:首先,需要使用合适的数据库连接驱动来连接数据库。常见的数据库连接驱动有JDBC...
    99+
    2023-08-30
    java
  • Java中Objects.equals踩坑记录
    目录前言1. 案发现场2. 判断相等的方法2.1 使用==号2.2 使用equals方法3. 空指针异常4. Objects.equals的作用5. Objects.equals的坑...
    99+
    2024-04-02
  • 怎么在mysql中判断一条记录是否存在
    在mysql中判断记录是否存在的方法:1.启动mysql;2.登录mysql数据库;3.进入数据表;4.执行select命令判断;具体步骤如下:首先,在命令行中启动mysql服务;service mysql start  mysq...
    99+
    2024-04-02
  • 在 PHP 中记录错误
    当我们开发任何应用程序(包括 PHP 应用程序)时,记录错误都是必不可少的。 因此,重要的是要知道如何在 PHP 中记录错误,而不是依赖 print_r() 和 var_dump() 来知道什么时候出了...
    99+
    2024-02-27
  • 日志记录在 Bash 和 Java 中的异同点是什么?
    日志记录是软件开发中非常重要的一个环节,可以帮助开发者在软件运行时快速定位和解决问题。在 Bash 和 Java 中,日志记录也是非常常见的操作。本文将从以下几个方面探讨 Bash 和 Java 中日志记录的异同点。 日志记录的目的 B...
    99+
    2023-10-12
    bash 并发 日志
  • Java开发中常用记录
    一、编程式事务 1.在执行事务提交或者回滚之前,事务状态不确定时,可以判断一下事务是否已完成,避免重复提交或者回滚出现异常 举例: TransactionStatus transac...
    99+
    2023-05-19
    Java开发
  • MySQL中error log和bin log怎么用
    这篇文章主要介绍MySQL中error log和bin log怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.Error log 記錄DB啟動,運行,停止時嚴重錯誤 可用...
    99+
    2024-04-02
  • 详解Java如何在CompletableFuture中实现日志记录
    平时写项目的时候,java之父叫我们多打日志,我们通常使用traceId和requestId来保存完整请求的链路日志,例如市面上的skywalking、zipkin等都能实现此功能。...
    99+
    2023-05-16
    Java CompletableFuture实现日志记录 Java CompletableFuture日志记录 Java CompletableFuture日志 Java CompletableFut
  • mongodb中怎么统计记录
    mongodb中统计记录的方法:1、打开命令行,使用“mongo”命令连接本地MongoDB服务;2、使用“show dbs”命令查看可使用的数据库信息;3、再使用“use 数据库名称”切换到目标数据库中;4、通过“show collect...
    99+
    2024-04-02
  • 在Ubuntu系统中怎么清除Bash日志记录
    本篇内容主要讲解“在Ubuntu系统中怎么清除Bash日志记录”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在Ubuntu系统中怎么清除Bash日志记录”吧! 在渗透测试中,要清除当前bash操...
    99+
    2023-06-13
  • 怎么理解nologging、force logging、supplemental log日记
    本篇内容介绍了“怎么理解nologging、force logging、supplemental log日记”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何...
    99+
    2024-04-02
  • 日志记录在Java容器中的编程算法是什么?
    日志记录是软件开发中非常重要的一环,它可以帮助开发者快速找出软件中的问题,提高软件的可维护性和可靠性。在Java容器中,我们可以使用log4j、logback等日志框架来记录日志。那么,如何在Java容器中编写一个高效的日志记录算法呢?本...
    99+
    2023-07-29
    容器 日志 编程算法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作