本章简要介绍了如何配置日志记录和查看服务器日志。它包含以下小节:
Application Server 使用 JSR 047 中指定的 Java EE 平台日志记录 API。Application Server 日志消息记录在服务器日志中,通常可以在 domain-dir/logs/server.log 中找到。轮转日志时,Application Server 将新建一个新的名为 server.log 的空文件,并将旧文件重命名为 server.log_date,其中 date 是轮转文件的日期和时间。
domain-dir/logs 目录中除了包含服务器日志外,还包含另外两种日志。access 子目录中包含 HTTP 服务访问日志,tx 子目录中包含事务服务日志。有关这些日志的信息,请参见配置事务。
Application Server 组件生成日志记录输出。应用程序组件也可以生成日志记录输出。
应用程序组件可以使用 Apache Commons Logging Library 来记录消息。但是,建议采用平台标准 JSR 047 API 以获得更好的日志配置。
日志记录遵循以下统一格式:
[#|yyyy-mm-ddThh:mm:ss.SSS-Z|Log Level|ProductName-Version|LoggerName|Key Value Pairs|Message|#]
例如:
[#|2006-10-21T13:25:53.852-0400|INFO|sun-appserver9.1|javax.enterprise. system.core|_ThreadID=13;|CORE5004: Resource Deployed: [cr:jms/DurableConnectionFactory].|#]
在此示例中,
[# 和 #] 标记该记录的开始和结束。
垂直条 (|) 用于分隔记录字段。
2006-10-21T13:25:53.852-0400 指定日期和时间。
日志级别 为 INFO。日志级别可以是以下任何值:SEVERE、WARNING、INFO、CONFIG、FINE、FINER 和 FINEST。
产品名称及版本为 sun-appserver9.1。
记录程序名称是用于标识日志模块的来源的分层记录程序名称空间,在此示例中为 javax.enterprise.system.core。
关键字值对为关键字名称和值,通常为线程 ID,如 _ThreadID=14;。
消息是日志信息的文本。对于所有 Application Server SEVERE 和 WARNING 消息及多种 INFO 消息,其均以包含模块代码和数值的消息 ID开头(在此示例中为 CORE5004)。
在以后的版本中,可能会更改或增强日志记录格式。
Application Server 为它的每个模块都提供了记录程序。下表按照每个记录程序的模块名称和名称空间在管理控制台的“日志级别”页面中的显示方式以字母顺序列出每个记录程序的模块名称和名称空间(请参见配置日志级别)。“日志级别”页面中未显示表中最后三个模块。
表 17–1 Application Server 记录程序名称空间
模块名称 |
名称空间 |
---|---|
管理 |
javax.enterprise.system.tools.admin |
类加载器 |
javax.enterprise.system.core.classloading |
配置 |
javax.enterprise.system.core.config |
连接器 |
javax.enterprise.resource.resourceadapter |
CORBA |
javax.enterprise.resource.corba |
部署 |
javax.enterprise.system.tools.deployment |
EJB 容器 |
javax.enterprise.system.container.ejb |
组管理服务(仅限于群集和企业配置文件) |
javax.ee.enterprise.system.gms |
JavaMail |
javax.enterprise.resource.javamail |
JAXR |
javax.enterprise.resource.webservices .registry |
JAXRPC |
javax.enterprise.resource.webservices.rpc |
JAXWS |
javax.enterprise.resource.webservices.javaws |
JBI |
com.sun.jbi |
JMS |
javax.enterprise.resource.jms |
JTA |
javax.enterprise.resource.jta |
JTS |
javax.enterprise.system.core.transaction |
MDB 容器 |
javax.enterprise.system.container.ejb.mdb |
命名 |
javax.enterprise.system.core.naming |
持久性 |
oracle.toplink.essentials, javax.enterprise.resource.jdo, javax.enterprise.system.container.cmp |
节点代理(仅限于群集和企业配置文件) |
javax.ee.enterprise.system.nodeagent |
根目录 |
javax.enterprise |
SAAJ |
javax.enterprise.resource.webservices.saaj |
安全性 |
javax.enterprise.system.core.security |
自管理 |
javax.enterprise.system.core.selfmanagement |
服务器 |
javax.enterprise.system |
同步(仅限于群集和企业配置文件) |
javax.ee.enterprise.system.tools .synchronization |
实用程序 |
javax.enterprise.system.util |
验证器 |
javax.enterprise.system.tools.verifier |
Web 容器 |
javax.enterprise.system.container.web org.apache.catalina org.apache.coyote org.apache.jasper |
本节包括以下主题:
使用管理控制台配置常规日志记录设置的步骤:
对于开发者配置文件,请转至“应用服务器”->“日志记录”->“常规”
对于群集和企业配置文件,转至“配置”->“配置”->“日志设置”->“常规”
在“常规”页面上,输入合适的值按照您的要求自定义日志记录。停止并重新启动 Application Server。
有关设置各种配置参数的详细信息,请单击 管理控制台 中的“帮助”。
要在 asadmin 中配置这些日志设置,使用 get 和 set 命令。
使用 管理控制台 配置日志级别的步骤:
对于开发者配置文件,转至“应用服务器”->“日志记录”->“日志级别”
对于群集和企业配置文件,转至“配置”->“配置”->“日志记录”->“日志设置”->“日志级别”
设置此页面上列出的模块的日志级别。使用“其他属性”区域可以为任何应用程序记录程序配置日志级别。有关模块记录程序列表,请参见记录程序名称空间分层结构。
有关设置各种配置参数的详细信息,请单击管理控制台中的“帮助”。
要在 asadmin 中配置这些日志设置,请使用 get 和 set 命令。
查看日志文件:
在开发者配置文件中,转至“应用服务器”->“日志记录”->“查看日志文件”。
在群集和企业配置文件中,转至“配置”->“配置”->“记录程序设置”->“常规”,然后单击“查看日志文件”。
使用“搜索条件”区域中提供的选项根据偏好显示日志结果。
实例名称—从下拉式列表中选择一个实例名称,以查看该服务器实例的日志。默认值为当前服务器实例。
日志文件—从下拉式列表中选择一个日志文件名称,以查看该日志的内容。默认名称为 server.log。
时间戳—要查看最新的消息,请选择“最近”(默认值)。如果只查看特定时间段内的消息,请选择“特定范围”并在显示的“从”字段和“到”字段中键入日期和时间值。对于时间值,其语法必须采用以下格式(SSS 表示毫秒):
hh:mm:ss.SSS |
例如:
17:10:00.000 |
如果“从”字段中的时间值迟于“到”字段中的时间值,将显示错误消息。
日志级别—要按照日志级别过滤消息,请从下拉式列表中选择一个日志级别。默认情况下,将显示服务器日志中选定日志级别和更高日志级别的所有消息。选中标有“不包括更高级别的消息”的复选框将仅显示所选级别的消息。
为确保您要查看的消息都显示在服务器日志中,请先在“日志级别”页面中设置适当的日志级别。请参见配置日志级别。
如果您选择基于日志级别过滤日志消息,则将只显示符合指定过滤条件的消息。不过,这种过滤不影响那些记录到服务器日志中的消息。
将显示服务器日志中最新的 40 个条目以及在“日志记录设置”和“日志级别”页面中指定的设置。
单击“时间戳”标题旁边的箭头对这些消息进行排序,以使最新的消息显示在最后。
要查看任何消息的格式化版本,请单击标记的链接
(details) |
将显示标有“日志条目详细资料”的窗口,该窗口包含了消息的格式化版本。
在条目列表的末尾,单击按钮以查看日志文件中较早或较晚的条目。
单击“搜索条件”区域中的“高级搜索”以进一步细化日志查看器的搜索条件。使用如下所示的“高级选项”字段:
记录程序—要按模块过滤,请从下拉式列表中选择一个或多个名称空间。按住 Shift 键并单击或按住 Ctrl 键并单击来选择多个名称空间。
选择较高级别的名称空间也就选择了该名称空间下的所有名称空间。例如,选择 javax.enterprise.system 的同时也就选择了该名称空间下所有模块的记录程序:javax.enterprise.system.core、javax.enterprise.system.tools.admin 等。
自定义记录程序—要查看特定于某个特定应用程序的记录程序中的消息,请在文本字段中键入记录程序的名称,每行键入一个。如果应用程序具有多个模块,您可以查看任何模块,也可以查看所有模块。例如,假定应用程序具有使用以下名称的记录程序:
com.mycompany.myapp.module1 com.mycompany.myapp.module2 com.mycompany.myapp.module3 |
要查看应用程序中所有模块的消息,请键入 com.mycompany.myapp。如果只查看 module2 的消息,请键入 com.mycompany.myapp.module2。
如果指定了一个或多个自定义记录程序,则仅当您在“记录程序”区域中明确指定 Application Server 模块的消息之后,才会显示这些消息。
名称值对—要查看特定线程的输出,请在文本字段中键入该线程的关键字名称和值。关键字名称为 _ThreadID。例如:
_ThreadID=13 |
假定 com.mycompany.myapp.module2 在多个线程中运行。要完善日志查看器使其只显示单个线程的输出,请在“自定义记录程序”字段中指定该模块的记录程序,然后在此字段中指定线程 ID。
显示—要一次查看 40 条以上的消息(默认值),请从下拉式列表中选择其他可用的值(100、250 或 1000)。
要查看栈追踪,请取消选中“限制过长的消息”复选框。默认情况下,查看器中不会显示栈追踪,要查看栈追踪,请单击消息的 (details) 链接。
单击“基本搜索”可以隐藏“高级选项”区域。