Sun Java System Application Server Enterprise Edition 8.1 2005Q2 管理指南

第 15 章 配置日志记录

本章简要介绍了如何使用管理控制台来配置日志记录和查看服务器日志。它包含以下小节:

关于日志

日志记录

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

domain-dir/logs 目录中除了包含服务器日志外,还包含另外两种日志。access 子目录中包含 HTTP 服务访问日志,tx 子目录中包含事务服务日志。有关这些日志的信息,请参见配置 HTTP 服务访问日志配置事务

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

在本示例中,

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

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

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

有关日志记录的管理控制台任务

Procedure配置常规日志记录设置

  1. 在树组件中,展开“节点代理”节点或“配置”节点。

  2. 选择节点代理,或者选择要配置的实例:

    • 要配置特定的实例,请选择该实例的配置节点。例如,对于默认实例 server,请选择 server-config 节点。

    • 要为将来的实例 (使用 default-config 副本)配置默认设置,请选择 default-config 节点。

  3. 对于节点代理,请选择“日志程序设置”选项卡。对于配置,请选择“日志程序设置”节点。

  4. 在“日志设置”页面中,可以使用以下字段来自定义日志:

    • 日志文件—要为服务器日志文件指定替代名称或位置,请在文本字段中键入新的路径名。默认情况下,该位置为 domain-dir/logs/server.log

    • 警报—要通过 JMX 框架路由 SEVEREWARNING 消息,请选中“已启用”复选框。

    • 写入系统日志—仅在 Solaris 和 Linux 系统中,如果要将日志记录输出发送到服务器日志和 syslog 工具,请选中“已启用”复选框。

    • 日志处理程序—要将日志发送到 server.logsyslog 以外的目标,您可以插入自定义日志处理程序。自定义处理程序必须扩展 java.util.logging.Handler 类(JSR 047 兼容 API)。在“日志处理程序”字段中键入处理程序的绝对类名。还应将处理程序类置于 Application Server 类路径中,以便在服务器启动过程中安装该处理程序。自定义处理程序日志记录的格式应如日志记录中的描述。

    • 日志过滤器—要过滤发送给目标(如 server.logsyslog 或自定义日志处理程序指定的目标)的日志记录,可以插入自定义日志过滤器。该自定义过滤器必须实现接口 java.util.logging.Filter。在“日志过滤器”字段中键入过滤器的绝对类名。还应将过滤器类置于 Application Server 类路径中,以便在服务器启动过程中安装该过滤器。

    • 文件轮转限制:如果服务器日志的字节数达到了指定大小,请新创建一个名为 server.log 的空文件,并将旧文件重命名为 server.log_date,其中 date 是轮转文件的日期和时间。默认值为 2 兆字节。该限制的最小值为 500 千字节;如果指定较低的值,则要在达到 500 千字节时该文件才轮转。要关闭日志文件轮转,请将该值设置为 0。

    • 文件轮转时间限制—达到最小指定分钟数之后,才轮转服务器日志。默认值为零,这表示文件达到“文件轮转限制”字段中指定的大小即被轮转。如果指定了非零的时间限制,则该时间限制优先于大小限制。

  5. 单击“保存”以保存更改。单击“查看日志文件”查看服务器日志。

Procedure配置日志级别

  1. 在树组件中,展开“节点代理”节点或“配置”节点。

  2. 选择节点代理,或者选择要配置的实例:

    • 要配置特定的实例,请选择该实例的配置节点。例如,对于默认实例 server,请选择 server-config 节点。

    • 要为将来的实例 (使用 default-config 副本)配置默认设置,请选择 default-config 节点。

  3. 对于节点代理,请选择“日志级别”选项卡。对于配置,请选择“日志程序设置”节点,然后选择“日志级别”选项卡。

  4. 在“模块日志级别”页面中,请从要更改日志级别的一个或多个模块对应的下拉式列表中选择一个新值。

    默认级别为 INFO,表示处于该级别或更高级别(WARNINGSEVERE) 的消息将显示在日志中。可以选择以下任一值(以最高级别至最低级别的顺序列出):

    • SEVERE

    • WARNING

    • INFO

    • CONFIG

    • FINE

    • FINER

    • FINEST

    • OFF

  5. 使用“其他属性”区域可以为任何应用程序日志程序配置日志级别。

    属性名是日志程序名称空间,其值为上述八个可能的级别之一。例如,属性名称可为 samples.logging.simple.servlet,值可为 FINE

    还可以使用此区域来更改子模块的日志级别,例如 CORBA 模块的传输子模块:


    javax.enterprise.resource.corba.ORBId.transport
  6. 单击“保存”以保存更改,或者单击“默认值”以恢复默认值。

    System.out.println 的调用均在 INFO 级别使用记录程序名称 javax.enterprise.system.stream.out 予以记录。对 System.err.println 的调用均在 WARNING 级别使用记录程序名称 javax.enterprise.system.stream.err 予以记录。要从这些源关闭日志,请在“其他属性”区域中将记录程序名称的值指定为 OFF

    对日志级别设置所做的更改将立即生效。同时,将在 domain.xml 文件中保存这些更改,以供服务器重新启动时使用。

Procedure查看服务器日志

  1. 在树组件中,展开要查看其日志的服务器实例的节点。

  2. 在“常规信息”页面中,单击“查看日志文件”。

  3. 使用“搜索条件”区域自定义和过滤日志查看器。使用如下所示的基本字段:

    • 实例名称—从下拉式列表中选择一个实例名称,以查看该服务器实例的日志。默认值为当前服务器实例。

    • 日志文件—从下拉式列表中选择一个日志文件名称,以查看该日志的内容。默认名称为 server.log

    • 时间戳—要查看最新的消息,请选择“最近”(默认值)。如果只查看特定时间段内的消息,请选择“特定范围”并在显示的“从”字段和“到”字段中键入日期和时间值。对于时间值,其语法必须采用以下格式(SSS 表示毫秒):


      hh:mm:ss.SSS
      

      例如:


      17:10:00.000

      如果“从”字段中的时间值迟于“到”字段中的时间值,将显示错误消息。

    • 日志级别—要按照日志级别过滤消息,请从下拉式列表中选择一个日志级别。默认情况下,将显示服务器日志中选定日志级别和更高日志级别的所有消息。选中标有“不包括更高级别的消息”的复选框将仅显示所选级别的消息。

      为确保您要查看的消息都显示在服务器日志中,请先在“日志级别”页面中设置适当的日志级别。请参见配置日志级别

      如果您选择基于日志级别过滤日志消息,则将只显示符合指定过滤条件的消息。不过,这种过滤不影响那些记录到服务器日志中的消息。

      将显示服务器日志中最新的 40 个条目以及在“日志记录设置”和“日志级别”页面中指定的设置。

      单击“时间戳”标题旁边的三角形对这些消息进行排序,以使最新的消息显示在最后。

      要查看任何消息的格式化版本,请单击标记的链接


      (details)

      将显示标有“日志条目详细资料”的窗口,该窗口包含了消息的格式化版本。

      在条目列表的末尾,单击按钮以查看日志文件中较早或较晚的条目。

      单击“搜索条件”区域中的“高级搜索”以进一步细化日志查看器的搜索条件。使用如下所示的“高级选项”字段:

    • 记录程序—要按模块过滤,请从下拉式列表中选择一个或多个名称空间。按住 Shift 键并单击或按住 Ctrl 键并单击来选择多个名称空间。

      选择较高级别的名称空间也就选择了该名称空间下的所有名称空间。例如,选择 javax.enterprise.system 的同时也就选择了该名称空间下所有模块的记录程序:javax.enterprise.system.corejavax.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) 链接。

      单击“基本搜索”可以隐藏“高级选项”区域。