Sun Java System Application Server Enterprise Edition 8.2 管理指南

第 15 章 配置日志记录

本章简要介绍了如何配置日志记录和查看服务器日志。它包含以下各节:

日志记录

Application Server 使用 JSR 047 中指定的 Java 2 平台日志记录 API。Application Server 日志信息记录在服务器日志中,通常可以在 domain-dir/logs/server.log 中找到。

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|#]

例如:

[#|2004-10-21T13:25:53.852-0400|INFO|sun-appserver-e8.1|javax.enterprise.
system.core|_ThreadID=13;|CORE5004: Resource Deployed: 
[cr:jms/DurableConnectionFactory].|#]

在本示例中,

在以后的版本中,可能会更改或增强日志记录格式。

设置自定义日志级别

本节介绍了如何为使用 java.util.logging 包并访问 Application Server 的日志记录子系统的应用程序配置自定义日志记录级别。

java.util.logging 包提供了分层名称空间,可以在该名称空间中创建日志程序实例。是否将特定日志记录输出到 Application Server 实例的日志文件中取决于日志记录的日志级别以及指定的日志级别。

Application Server 日志程序设置配置可提供二十多种日志记录模块,允许对 Application Server 自身的内部日志记录进行精细控制。还有一个选项可用于创建其他自定义日志模块,它通过指定模块名称和该模块应使用的日志记录级别来创建。

其中重要的一点是日志程序是静态名称,且不提供继承性。因此,如果为自定义日志程序配置了名称 com.someorg.app,在某个应用程序尝试查找日志程序 com.someorg.app.submodule 时,将不会为该应用程序提供继承了 com.someorg.app 中设置的日志程序。相反,com.someorg.app.submodule 将具有日志级别设置为 INFO 或更高级别的默认日志程序。

如果应用程序需要使用日志程序继承,则可以通过编辑用于运行 Application Server 的 Java 运行时的 logging.properties 文件来进行配置。例如,如果将以下条目添加到 logging.properties 文件中,则会导致 com.someorg.app.submodule 在创建时继承相同的 FINE 级别:

com.someorg.app.level = FINE

有关 Java 日志记录 API 的更多详细信息,请参阅 http://java.sun.com/j2se/1.5.0/docs/api/java/util/logging/package-summary.html 中的 Java 文档以及其他 java.util.logging 类。

日志程序名称空间分层结构

Application Server 为它的每个模块都提供了日志程序。下表按照每个日志程序的模块名称和名称空间在管理控制台的“日志级别”页面中的显示方式以字母顺序列出每个日志程序的模块名称和名称空间。“日志级别”页面中未显示表中最后三个模块。

表 15–1 Application Server 日志程序名称空间

模块名称

名称空间

管理 

javax.enterprise.system.tools.admin

类加载器 

javax.enterprise.system.core.classloading

CMP 

javax.enterprise.system.container.cmp

配置 

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

JavaMail 

javax.enterprise.resource.javamail

JAXR 

javax.enterprise.resource.webservices .registry

JAX-RPC 

javax.enterprise.resource.webservices.rpc

JDO 

javax.enterprise.resource.jdo

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

节点代理(仅限于 Enterprise Edition) 

javax.ee.enterprise.system.nodeagent

根目录 

javax.enterprise

SAAJ 

javax.enterprise.resource.webservices.saaj

安全性 

javax.enterprise.system.core.security

服务器 

javax.enterprise.system

同步(仅限于 Enterprise Edition) 

javax.ee.enterprise.system.tools .synchronization

实用程序 

javax.enterprise.system.util

验证器 

javax.enterprise.system.tools.verifier

Web 容器 

javax.enterprise.system.container.web

核心 

javax.enterprise.system.core

System Output (System.out.println)

javax.enterprise.system.stream.out

System Error (System.err.println)

javax.enterprise.system.stream.err