开源项目
知识点
相关文章
更多最近更新
更多log4j配置介绍
2019-04-27 18:37|来源: 网路
上一章介绍log4j的核心组件。本章介绍如何使用配置文件来配置这些核心组件。配置log4j涉及分配级别,定义追加程序,并在配置文件中指定布局的对象。
log4j.properties文件是一个键 - 值对保存 log4j 配置属性文件。默认情况下,日志管理在CLASSPATH 查找一个名为 log4j.properties 的文件。
根日志记录器的级别定义为DEBUG并连接附加器命名为X到它
设置名为X的附加目的地是一个有效的appender
设置布局的附加器X
log4j.properties 语法:
以下是 log4j.properties 文件的一个appender X的语法:
# Define the root logger with appender X log4j.rootLogger = DEBUG, X # Set the appender named X to be a File appender log4j.appender.X=org.apache.log4j.FileAppender # Define the layout for X appender log4j.appender.X.layout=org.apache.log4j.PatternLayout log4j.appender.X.layout.conversionPattern=%m%n
log4j.properties 示例:
使用上面的语法,我们定义 log4j.properties 文件如下:
根日志记录器(logger)的级别定义为DEBUG并连接附加器命名为FILE
附加器(appender)File是定义为org.apache.log4j.FileAppender并写入到一个名为“log.out”位于日志log目录下
定义的布局模式是%m%n,这意味着每打印日志消息之后,将加上一个换行符
# Define the root logger with appender file log4j.rootLogger = DEBUG, FILE # Define the file appender log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=${log}/log.out # Define the layout for file appender log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n
需要注意的是log4j支持UNIX风格的变量替换,如 ${variableName}.
调试级别:
使用DEBUG两个追加程序。所有可能的选项有:
TRACE
DEBUG
INFO
WARN
ERROR
FATAL
ALL
Appenders:
Apache的log4j提供Appender对象主要负责打印日志消息到不同的目的地,如控制台,文件,sockets,NT事件日志等等。
每个Appender对象具有与之相关联的不同的属性,并且这些属性表明对象的行为
属性 | 描述 |
---|---|
layout | Appender使用布局Layout 对象和与之相关的格式化的日志记录信息转换模式 |
target | 目标可以是一个控制台,一个文件,或根据附加器的另一个项目 |
level | 级别是必需的,以控制日志消息的过滤 |
threshold | Appender可以有与之独立的记录器级别相关联的级别阈值水平。Appender忽略具有级别低于阈级别的任何日志消息 |
filter | Filter 对象可以分析超出级别的匹配记录信息,并决定是否记录的请求应该由一个特定 Appender 或忽略处理 |
可以通过包括以下方法的配置文件中的下面设置一个 Appender 对象添加到记录器:
log4j.logger.[logger-name]=level, appender1,appender..n
可以编写以XML格式相同的结构如下:
<logger name="com.apress.logging.log4j" additivity="false"> <appender-ref ref="appender1"/> <appender-ref ref="appender2"/> </logger>
如果想要添加Appender对象到程序,那么可以使用下面的方法:
public void addAppender(Appender appender);
addAppender()方法添加一个appender到Logger对象。作为示例配置演示,可以添加很多Appender对象到记录器在逗号分隔的列表,每个打印日志信息分离目的地。
我们仅使用一个附加目的地FileAppender在我们上面的例子。所有可能的附加目的地选项有:
AppenderSkeleton
AsyncAppender
ConsoleAppender
DailyRollingFileAppender
ExternallyRolledFileAppender
FileAppender
JDBCAppender
JMSAppender
LF5Appender
NTEventLogAppender
NullAppender
RollingFileAppender
SMTPAppender
SocketAppender
SocketHubAppender
SyslogAppender
TelnetAppender
WriterAppender
Layout:
我们使用的PatternLayout 使用 appender。所有可能的选项有:
DateLayout
HTMLLayout
PatternLayout
SimpleLayout
XMLLayout
使用HTMLLayout和XMLLayout,可以在HTML和XML格式和生成日志。
相关问答
更多-
你能解释为什么你想更详细地记录多个记录器吗? 我不认为有可能有多个log4j实例。 如果你只是想多个appender,看看这里: http://www.velocityreviews.com/forums/t721794-log4j-different-logger-instances.html 这里是上面链接的log4j.properties: # logj4.properties log4j.rootCategory = WARN, A log4j.category.com.lewscanon = WA ...
-
通过slf4j配置log4j(config log4j via slf4j)[2023-01-10]
你不能使用slf4j,你只需保留log4j的旧配置代码。 slf4j不处理配置部分,这对于所有支持的日志记录系统来说很难概括。 slf4j只是一个用于处理调度到特定日志记录实现的日志记录调用的API。 它还提供了许多桥接,例如将java.util.logging重定向到slf4j。 日志输出会发生什么不是slf4j API的一部分。 You can't use slf4j for that, you just keep your old configuration code for log4j. slf4j ... -
log4j的配置(log4j's configuration)[2023-08-27]
您的配置文件未正确写入。 Appender不应该是类/包减速,而是一种你想输出消息的appender(如果你想输出到默认的appender,请保持空白) 该文件看起来应该更像: log4j.rootLogger=FATAL log4j.logger.com.A=DEBUG Your configuration file isn't properly written. Appender shouldn't be the class/package deceleration but a type of ap ... -
我终于改变了maven声纳配置文件中的log4g文件链接。 I finally changed the log4g file link in the maven sonar profile.
-
log4j:重新配置两次(log4j : reconfigure twice)[2022-04-07]
基于这个问题的答案,log4j2似乎相当复杂(这是我假设您正在使用的,因为您正在讨论使用JSON配置文件,这在log4j 1.x中不存在据我所知)。 如果您愿意使用XML或属性log4j配置并降级到log4j 1.x,则可以使用PropertyConfigurator.configure(String)或DOMConfigurator.configure(String)具体取决于您是使用属性还是XML配置文件。 Based on the answers to this question, it seems ... -
你可以,我想定期轮询Log4j API,询问你的自定义appender是否被附加(使用Category.isAttached(appender) ),并在必要时重新附加。 它非常笨重,但我不知道任何通知机制。 You could, I suppose periodically poll the Log4j API asking if your custom appenders are attached (using Category.isAttached(appender)), and re-attach ...
-
配置log4j grails(Configuring log4j grails)[2022-03-23]
您可能能够使用日志配置DSL构建在不明确访问环境的情况下在环境上进行分支。 environments { development { loggers.add('console') } test { loggers.add('console') } } 这就是说,我不确定你在配置的其他部分试图完成什么,所以可能有更好的方法来处理事情。 You may be able to use the log config DSL construction to branch on environment ... -
Log4J动态配置(Log4J dynamic configuration)[2023-11-24]
好的,从你的评论,我在这里尝试。 我想你会在你的应用程序开始时创建你的10个实例。 无论如何。 在你的log4j.xml中,使用name = yourUniqueId定义10 appender(这个唯一的id将是硬编码的) 让这些appender写入yourUniqueid.log... -
当我第一次开始学习log4j ,我首先从这里开始了解它的架构Log4j 。 在那里,您还可以找到使用此API所需的log4j jar的下载链接。 关于log4j.properties文件,您必须自己创建它。 我将在下面添加一个样本 #Define the root logger with the appender FILE log4j.rootLogger = INFO,FILE 将名为FILE的appender设置为File Appender log4j.appender.FILE = org.apac ...
-
该消息只是一个通知,表明log4j尚未配置为记录来自org.displaytag.properties.TableProperties类(如果有)的消息。 这不是一个问题..通常这可以忽略。 the message is just a notification that log4j hasn't been configured to log messages from org.displaytag.properties.TableProperties class (if any).. this is not ...