4.3. 按部署日志记录
通过按部署日志记录,开发人员可以提前为其应用配置日志配置。部署应用时,根据定义的配置开始日志记录。通过此配置创建的日志文件仅包含有关应用程序行为的信息。
如果未执行按部署的日志配置,则所有应用和服务器都使用来自 logging
子系统的配置。
与使用整个系统日志记录相比,这种方法具有优缺点。优点是 JBoss EAP 实例的管理员不需要配置服务器日志记录之外的任何其他日志记录。个缺点是每个部署的日志配置仅在服务器启动时读取,因此在运行时无法更改。
4.3.1. 将 Per-deployment Logging 添加到应用程序
要为应用配置每个部署日志记录,请将 logging.properties
配置文件添加到您的部署中。建议使用这个配置文件,因为它可以用于任何记录 facade,其中 JBoss 日志管理器是底层日志管理器。
添加配置文件的目录取决于部署方法。
-
对于 EAR 部署,将日志记录配置文件复制到
META-INF/
目录中。 -
对于 WAR 或 JAR 部署,请将日志配置文件复制到
WEB-INF/classes/
目录中。
如果您使用 Simple Logging Facade for Java(SLF4J)或
Apache log4j
,则适合使用 logging.properties
配置文件。如果您使用的是 Apache log4j 附加程序,则需要配置文件 log4j.properties
。配置文件 jboss-logging.properties
仅支持传统部署。
配置 logging.properties
服务器引导时使用 logging.properties
文件,直到 logging
子系统启动为止。如果您的配置中没有包括 logging
子系统,则服务器将此文件中的配置用作整个服务器的日志记录配置。
JBoss 日志管理器配置选项
日志记录器选项
-
loggers=<category>[,<category>,…]
- 指定要配置的、以逗号分隔的日志记录器类别列表。此处未列出的任何类别均不会从以下属性配置: -
logger.<category>.level=<level> -
指定类别级别。级别可以是有效级别之一。如果未指定,将继承最接近的父项的级别。 -
logger.<category>.handlers=<handler>[,<handler>,…]
- 指定附加到此日志记录器的处理程序名称的逗号分隔列表。处理程序必须在同一属性文件中配置。 -
logger.<category>.filter=<filter>
- 为类别指定过滤器。 -
logger.<category>.useParentHandlers=(true|false)
- 指定日志消息是否应该与父处理程序匹配。默认值为true
。
处理程序选项
handler.<name>=<className>
- 指定要实例化的处理程序的类名称。此选项是必需的。注意表 4.1. 可能的类名称: 名称 关联的类 控制台(Console)
org.jboss.logmanager.handlers.ConsoleHandler
File
org.jboss.logmanager.handlers.FileHandler
periodic
org.jboss.logmanager.handlers.PeriodicRotatingFileHandler
Size
org.jboss.logmanager.handlers.SizeRotatingFileHandler
定期大小
org.jboss.logmanager.handlers.PeriodicSizeRotatingFileHandler
Syslog
org.jboss.logmanager.handlers.SyslogHandler
Async
org.jboss.logmanager.handlers.AsyncHandler
自定义
处理程序可以有任何关联的类或模块。用户可在logging
子系统中定义自己的日志处理程序。如需更多信息,请参阅 JBoss EAP 配置指南中的日志处理程序 。
-
handler.<name>.level=<level>
- 限制这个处理器的级别。如果未指定,则保留默认值 ALL。 -
handler.<name>.encoding=<encoding>
- 指定字符编码(如果这个处理器类型支持)。如果未指定,则使用特定于处理程序的默认值。 -
handler.<name>.errorManager=<name> -
指定要使用的错误管理器名称。错误管理器必须在同一属性文件中配置。如果未指定,则不配置错误管理器。 -
handler.<name>.filter=<name>
- 为类别指定过滤器。有关定义过滤器的详细信息,请参阅过滤器表达式。 -
handler.<name>.formatter=<name> -
如果这个处理器类型支持,指定要使用的格式器的名称。格式器必须在同一属性文件中配置。如果没有指定,大多数处理程序类型将不会记录消息。 handler.<name>.properties=<property>[,<property>,…]
- 指定要额外配置的 JavaBean 风格属性列表。进行粗略类型内省,以确定给定属性的相应转换。如果 JBoss 日志管理器中的所有文件处理程序
都需要
在fileName
之前设置。在handler.<name>.properties
中显示属性的顺序是设置属性的顺序。-
handler.<name>.constructorProperties=<property>[,<property>,…]
- 指定应用作构建参数的属性列表。进行粗略类型内省,以确定给定属性的相应转换。 -
handler.<name>.<property>=<value> -
设置 named 属性的值。 -
handler.<name>.module=<name> -
指定处理器所在的模块的名称。
如需更多信息,请参阅 JBoss EAP 配置指南中的日志处理程序属性 。
错误管理器选项
-
errorManager.<name>=<className>
- 指定要实例化错误管理器的类名称。此选项是必需的。 -
errorManager.<name>.properties=<property>[,<property>,…]
- 指定要额外配置的 JavaBean 风格属性列表。进行粗略类型内省,以确定给定属性的相应转换。 -
errorManager.<name>.<property>=<value> -
设置 named 属性的值。
格式选项
-
formatter.<name>=<className>
- 指定要实例化格式器的类名称。此选项是必需的。 -
formatter.<name>.properties=<property>[,<property>,…]
- 指定要额外配置的 JavaBean 风格属性列表。进行粗略类型内省,以确定给定属性的相应转换。 -
formatter.<name>.constructorProperties=<property>[,<property>,…]
- 指定应用作构建参数的属性列表。进行粗略类型内省,以确定给定属性的相应转换。 -
formatter.<name>.<property>=<value> -
设置 named 属性的值。
以下示例显示了记录到控制台的 logging.properties
文件的最小配置。
示例:最小 logging.properties
配置
# Additional logger names to configure (root logger is always configured) # loggers= # Root logger level logger.level=INFO # Root logger handlers logger.handlers=CONSOLE # Console handler configuration handler.CONSOLE=org.jboss.logmanager.handlers.ConsoleHandler handler.CONSOLE.properties=autoFlush handler.CONSOLE.autoFlush=true handler.CONSOLE.formatter=PATTERN # Formatter pattern configuration formatter.PATTERN=org.jboss.logmanager.formatters.PatternFormatter formatter.PATTERN.properties=pattern formatter.PATTERN.pattern=%K{level}%d{HH:mm:ss,SSS} %-5p %C.%M(%L) [%c] %s%e%n