11.8. 关于应用程序日志
可以使用 JBoss EAP logging
子系统或每一部署来配置应用的日志记录。
有关日志记录子系统,请参阅使用 JBoss EAP 日志类别和处理程序来获取日志消息。
有关应用日志记录的更多信息,如受支持的应用日志框架和部署日志配置,请参阅 JBoss EAP 开发指南 中的 日志记录 章节。
11.8.1. 按部署日志记录 复制链接链接已复制到粘贴板!
通过按部署日志记录,开发人员可以提前为其应用配置日志配置。部署应用时,根据定义的配置开始日志记录。通过此配置创建的日志文件仅包含有关应用程序行为的信息。
如果未执行按部署的日志配置,则所有应用和服务器都使用来自 logging
子系统的配置。
与使用整个系统日志记录相比,这种方法具有优缺点。优点是 JBoss EAP 实例的管理员不需要配置服务器日志记录之外的任何其他日志记录。个缺点是每个部署的日志配置仅在服务器启动时读取,因此在运行时无法更改。
有关在应用程序中使用按部署登录的说明,请参阅 JBoss EAP 开发指南 中的 将 Per-deployment Logging 添加至应用。
11.8.1.1. 禁用 Per-deployment Logging 复制链接链接已复制到粘贴板!
您可以使用以下方法之一禁用每个部署日志:
将
use-deployment-logging-config
属性设置为false
。use-deployment-logging-config
属性控制您的部署是否被扫描每个部署日志。默认默认为true
。您可以将此属性设置为false
,以禁用每个部署日志记录。/subsystem=logging:write-attribute(name=use-deployment-logging-config,value=false)
/subsystem=logging:write-attribute(name=use-deployment-logging-config,value=false)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
jboss-deployment-structure.xml
文件排除logging
子系统。具体步骤,请参阅 JBoss EAP 开发指南 中的 从部署中排除子系统。
11.8.2. 日志记录配置集 复制链接链接已复制到粘贴板!
日志记录配置集是独立的日志配置集合,可以分配给已部署的应用。与常规的 logging
子系统一样,日志记录配置文件可以定义处理程序、类别和根日志记录器,但它不能引用其他配置文件或主要 日志记录
子系统中的配置。日志配置文件的设计模仿 logging
子系统以方便配置。
通过日志记录配置文件,管理员可以创建专用于一个或多个应用的日志记录配置,而不影响任何其他日志配置。由于每个配置集都在服务器配置中定义,因此可以更改日志记录配置,而无需重新部署受影响的应用。
每个日志记录配置集都可以有:
- 唯一的名称。此值是必需的。
- 任意数量的日志处理程序.
- 任何数量的日志类别。
- 最多一个根日志记录器.
应用可以使用 Logging-Profile
属性在其 MANIFEST.MF
文件中指定要使用的日志记录配置文件。
11.8.2.1. 配置日志记录配置集 复制链接链接已复制到粘贴板!
日志记录配置文件可以使用日志处理程序、类别和根日志记录器进行配置。配置日志记录配置集使用与配置 日志记录
子系统相同的语法,但以下不同之处除外:
-
根配置路径为
/subsystem=logging/logging-profile=NAME
。 - 日志配置集无法包含其他日志配置集。
logging
子系统具有以下无法用于日志记录配置集的属性:-
add-logging-api-dependencies
-
use-deployment-logging-config
-
创建和配置日志配置集
以下流程使用管理 CLI 创建日志记录配置集并设置文件处理程序和日志记录器类别。也可以使用管理控制台配置日志记录配置集,方法是导航到 Configuration
创建日志记录配置文件。
/subsystem=logging/logging-profile=PROFILE_NAME:add
/subsystem=logging/logging-profile=PROFILE_NAME:add
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 文件处理程序。
/subsystem=logging/logging-profile=PROFILE_NAME/file-handler=FILE_HANDLER_NAME:add(file={path=>"LOG_NAME.log", "relative-to"=>"jboss.server.log.dir"})
/subsystem=logging/logging-profile=PROFILE_NAME/file-handler=FILE_HANDLER_NAME:add(file={path=>"LOG_NAME.log", "relative-to"=>"jboss.server.log.dir"})
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /subsystem=logging/logging-profile=PROFILE_NAME/file-handler=FILE_HANDLER_NAME:write-attribute(name="level", value="DEBUG")
/subsystem=logging/logging-profile=PROFILE_NAME/file-handler=FILE_HANDLER_NAME:write-attribute(name="level", value="DEBUG")
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关文件 处理程序属性列表,请参阅文件日志处理程序属性列表。
创建日志记录器类别。
/subsystem=logging/logging-profile=PROFILE_NAME/logger=CATEGORY_NAME:add(level=TRACE)
/subsystem=logging/logging-profile=PROFILE_NAME/logger=CATEGORY_NAME:add(level=TRACE)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关日志类别属性列表,请参阅 Log Category Attributes。
将文件处理程序分配到该类别。
/subsystem=logging/logging-profile=PROFILE_NAME/logger=CATEGORY_NAME:add-handler(name="FILE_HANDLER_NAME")
/subsystem=logging/logging-profile=PROFILE_NAME/logger=CATEGORY_NAME:add-handler(name="FILE_HANDLER_NAME")
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
然后,您可以将日志记录配置集设置为由应用在其 MANIFEST.MF
文件中使用。如需更多信息,请参阅 《JBoss EAP 开发指南 》中的应用指定日志配置文件。
11.8.2.2. 日志配置集配置示例 复制链接链接已复制到粘贴板!
本例显示了日志记录配置文件和使用它的应用的配置。它显示管理 CLI 命令、生成的 XML 和应用 MANIFEST.MF
文件。
日志记录配置集示例有以下特征:
-
名称为
accounts-app-profile
。 -
日志类别为
com.company.accounts.ejbs
。 -
日志级别
TRACE
. -
日志处理程序是使用文件
ejb-trace.log
的文件处理程序。
管理 CLI 会话
XML 配置
应用程序 MANIFEST.MF 文件
Manifest-Version: 1.0 Logging-Profile: accounts-app-profile
Manifest-Version: 1.0
Logging-Profile: accounts-app-profile
11.8.3. 查看部署配置 复制链接链接已复制到粘贴板!
您可以使用以下管理 CLI 命令获取有关特定部署的日志记录配置的信息。
/deployment=DEPLOYMENT_NAME/subsystem=logging/configuration=CONFIG:read-resource
/deployment=DEPLOYMENT_NAME/subsystem=logging/configuration=CONFIG:read-resource
部署的日志记录配置值 CONFIG
可以是以下三个值之一:
-
默认情况下
,如果部署使用logging
子系统 :这将输出logging
子系统配置。 -
profile-PROFILE_NAME
,如果部署使用logging
子系统中定义的日志记录配置文件。这将输出日志记录配置文件配置。 -
使用的配置文件的路径,例如
myear.ear/META-INF/logging.properties
。
例如,以下管理 CLI 命令显示 MYPROFILE
日志配置文件的配置,该配置集由指定部署使用。
/deployment=mydeployment.war/subsystem=logging/configuration=profile-MYPROFILE:read-resource(recursive=true,include-runtime=true)
/deployment=mydeployment.war/subsystem=logging/configuration=profile-MYPROFILE:read-resource(recursive=true,include-runtime=true)
这将输出以下信息:
您还可以使用递归 read-resource
操作来读取日志记录配置和有关部署的其他信息。
/deployment=DEPLOYMENT_NAME/subsystem=logging:read-resource(include-runtime=true, recursive=true)
/deployment=DEPLOYMENT_NAME/subsystem=logging:read-resource(include-runtime=true, recursive=true)