详解log4j.properties的简单配置和使用

下面是“详解log4j.properties的简单配置和使用”的完整攻略。

一、log4j.properties概述

log4j.properties是一个Log4j的配置文件。在Java应用程序中使用Log4j,我们通常先要配置log4j.properties文件。

在该文件中可以定义:

  1. 根节点日志级别
  2. 不同包的日志级别
  3. 不同的日志输出方式
  4. 日志格式等

下面简单介绍一下log4j.properties配置文件的语法:

  1. 注释:

注释以#或!开头。例如:

# This is a comment
! This too is a comment

  1. 关键字定义:

关键字是不区分大小写的。

  • log4j.rootLogger:

    根日志的定义,其中控制根日志的基础设置。

    log4j.rootLogger=[日志级别], [Appender名字]

  • log4j.appender.\<name>:

    name是指定的输出源名字。它的最小的排列是输出源的类型和输出源的名字。在这个名字后面可以由一个.和一个子名字来控制这个输出源。

  • log4j.logger.\<logger-name>:

    logger-name是指定的logger名字。log4j表示的是logger的名字,所以如果不指定的话,我们也可以用root表示根Logger。

  • log4j.logger.\<logger-name>.\<level>=\<logger-level>:

    logger-level是logger的级别,我们通常会使用debug、info、warn、error和fatal等级别。

  • log4j.appender.\<name>.threshold=\<level>:

    threshold是指定的level级别。它用来控制一个输出源或一个某个输出源的中的某个appender对象,最多输出一个最高水平的上限值。

  • log4j.appender.\<name>.\<param>=\<value>:

    用来设置输出源实际的效果,其中param是指定的参数,value是指定的参数的效果。

二、log4j.properties实例

  1. 输出到控制台

在这个例子中,我们定义了两个输出源:一个是INFO级别日志输出到控制台、一个是ERROR级别的日志输出到文件。

```properties
log4j.rootLogger=INFO, stdout, file

# 控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%-20t] %c:%L %m%n

# 文件输出
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=log/test.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.Append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%-20t] %c:%L %m%n

# 不同日志级别输出到不同目标
log4j.logger.com.example=DEBUG, stdout
log4j.logger.org.example=ERROR, file
```

在这个配置中,我们首先指定整个系统的日志级别为INFO级别,然后使用两个appender,一个是ConsoleAppender输出到控制台,一个是DailyRollingFileAppender输出到文件。

在最后,我们又使用logger进行进一步的分级设置,指定了不同的LOG级别对不同的appender进行输出。

  1. 输出到不同的文件

在这个例子中,我们定义了三个输出源:一个是INFO级别的日志输出到test.log中、一个是ERROR级别的日志输出到error.log中、一个是DEBUG级别的日志输出到debug.log中。

```
log4j.rootLogger=DEBUG, stdout

# INFO级别日志记录
log4j.appender.info.file=log/test.log
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.DatePattern='.'yyyy-MM-dd
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%-20t] %c:%L %m%n
log4j.logger.com.example=INFO, info

# ERROR级别日志记录
log4j.appender.error.file=log/error.log
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.DatePattern='.'yyyy-MM-dd
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%-20t] %c:%L %m%n
log4j.logger.org.example=ERROR, error

# DEBUG级别日志记录
log4j.appender.debug.file=log/debug.log
log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender
log4j.appender.debug.DatePattern='.'yyyy-MM-dd
log4j.appender.debug.layout=org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} [%-20t] %c:%L %m%n
log4j.logger.com.example.dao=DEBUG, debug
```

在这个配置中,我们首先指定整个系统的日志级别为DEBUG级别,然后使用三个appender,分别输出到不同的文件中。

接着,我们使用logger进行进一步的分级设置,指定了不同日志级别输出到不同的输出源。

例如,com.example包下的DEBUG级别的日志输出到debug.log中。

三、总结

通过上面两个例子,我们可以看到如何使用log4j.properties来对系统中的日志输出进行配置。

在使用中,我们首先需要了解Log4j的基本原理和语法规则。

接着,我们需要根据实际的需求,针对不同的输出目标和不同的日志级别,配置log4j.properties文件。

最后,在输出日志时,我们通过logger进行日志的调用,Log4j再根据配置文件进行日志的输出。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解log4j.properties的简单配置和使用 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • protobuf简单介绍和ubuntu 16.04环境下安装教程

    Protobuf简单介绍和Ubuntu 16.04环境下安装教程 Protobuf简介 Protocol Buffers (简称protobufs) 是 Google 开发的语言无关、平台无关、可扩展的序列化数据格式,常用于数据存储和通讯协议等场景。相比xml json等常见数据格式,他更加简单,更加高效。protobufs的作用是将数据从某个语言中的对象编…

    html 2023年5月30日
    00
  • 一个用于MySQL的PHP XML类

    下面是一个用于MySQL的PHP XML类的完整攻略: 1. 简介 在PHP中,操作XML文档是一个常见任务。同时,PHP也支持MySQL数据库,因此在某些情况下,我们可能需要将MySQL中的数据转换为XML格式进行处理。一个用于MySQL的PHP XML类便是为此目的而设计的工具。 2. 安装 在使用该类之前,需要先下载并安装PHP的XML扩展。可以通过下…

    html 2023年5月30日
    00
  • php.ini中的php-5.2.0配置指令详解

    让我来为你详细讲解”php.ini中的php-5.2.0配置指令详解”的攻略,以下将逐项进行介绍。 一、php.ini文件 php.ini文件是PHP的配置文件,通过修改该文件可以改变PHP的配置,同时也可以通过该文件开启或者关闭PHP的某些功能特性。 二、php-5.2.0版本的php.ini配置指令 php-5.2.0版本的php.ini配置指令较多,常…

    html 2023年5月30日
    00
  • ubuntu系统下gedit出现中文乱码的两种解决方法

    好的!下面是详细的攻略过程: 问题描述 在使用Ubuntu系统下的gedit文本编辑器时,可能会出现中文乱码的问题。 解决方法 出现中文乱码的问题,可以通过以下两种方法进行解决。 方法一:修改gedit的字符编码配置 步骤一:打开gedit 在Ubuntu系统中,按下Ctrl+Alt+T打开终端,输入以下命令打开gedit: gedit 步骤二:进入gedi…

    html 2023年5月31日
    00
  • word报名表怎么用域做简单的提示信息?

    以下是“word报名表怎么用域做简单的提示信息?”的完整攻略: Word报名表怎么用域做简单的提示信息? 在Word报名表中,可以使用域来添加简单的提示信息,以帮助用户更好地填写表格。以下是一些关于如何使用域添加提示信息的技巧和步骤,可以帮助用户在Word报名表中添加提示信息。 技巧1:使用文本域添加提示信息 文本域是Word中的一种域类型,可以用于添加提示…

    html 2023年5月18日
    00
  • 网站建设中怎么打造亮点

    以下是“网站建设中怎么打造亮点”的完整攻略: 网站建设中怎么打造亮点? 在网站建设中,打造亮点可以吸引用户的注意力,提高用户的体验和满意度。以下是一些关于如何打造亮点的技巧和步骤,可以帮助用户更好地建设网站。 技巧1:设计独特的页面布局 在网站建设中,设计独特的页面布局可以吸引用户的注意力。用户可以使用不同的颜色、字体、图片等元素来设计页面布局,以便更好地突…

    html 2023年5月18日
    00
  • 总结html5自定义属性有哪些

    关于”总结html5自定义属性有哪些”的问题,我可以分享一些攻略: 什么是HTML5自定义属性? HTML5自定义属性指的是自定义HTML元素的属性,这些属性可以是任何名称和值,并且可以在JavaScript或CSS中使用。HTML5自定义属性是在不破坏HTML5元素语义的情况下实现更好的可读性和可维护性的一种方式。 HTML5自定义属性的语法 HTML5自…

    html 2023年5月30日
    00
  • 详解Java解析XML的四种方法

    我们来详细讲解一下“详解Java解析XML的四种方法”。 标准的XML解析方式 Java提供了标准的XML解析方式,也就是DOM和SAX解析。其中DOM解析需要把整个XML文件解析到内存中,然后把它转化成一个树状结构。这种方式比较适合对XML文件的读写操作比较频繁的场景。 而SAX解析则是一种基于事件驱动的解析方式,它会在遇到节点的时候触发相应的事件。这种方…

    html 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部