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