Sun Java System Message Queue 3.7 UR1 管理指南

配置和使用代理日志记录

Message Queue 记录程序获取代理代码、调试器和度量生成器等生成的信息,并将这些信息写入多个输出通道:标准输出(控制台)、日志文件以及 Solaris™ 操作系统上的 syslog 守护进程。

您可以指定记录程序收集的信息类型以及写入每个输出通道的信息类型。特别是,您可以指定将度量信息写出到日志文件。

本节介绍了代理的默认日志记录配置,并说明了如何将日志信息重定向到替代的输出通道,如何更改日志文件转移条件,以及如何将度量数据发送到日志文件。

默认日志记录配置

代理自动配置为将日志输出保存到一组循环的日志文件中。这些日志文件位于由关联代理的实例名称标识的目录中(请参见附录 A, Message QueueTM 数据在特定平台上的位置):

…/instances/instanceName/log

注 –

对于其生命周期由应用服务器控制的代理,日志文件位于域目录(该域中启动了此代理)的子目录中:

…/appServer_domainName_dir/imq/instances/imqbroker/log

日志文件是纯文本文件。它们按如下方式命名(从最早生成到最近生成):

log.txt
log_1.txt
log_2.txt
…log_9.txt

默认情况下,日志文件每星期转移一次;系统维护九个备份文件。

代理支持三种日志级别:ERRORWARNINGINFO表 10–2 介绍了每种级别。

表 10–2 日志记录级别

级别 

描述 

ERROR

指出可能导致系统故障的问题的消息。 

WARNING

需要注意但不会导致系统故障的警报。 

INFO

度量及其他信息性消息的报告。 

设置日志记录级别后,将收集所有高于和等于该级别的消息。默认的日志级别是 INFO,因此,默认情况下会记录所有 ERRORWARNINGINFO 消息。

日志消息格式

记录的消息由时间戳、消息代码和消息本身构成。信息量取决于所设置的日志级别。下面是一个 INFO 消息的示例。


[13/Sep/2000:16:13:36 PDT] [B1004]: Starting the broker service using tcp 
[25374,100] with min threads 50 and max threads of 500

要更改时间戳时区,请参见有关 imq.log.timezone 属性的信息,表 14–8 中介绍了该属性。

更改记录程序配置

表 14–8 中介绍了与日志相关的属性。

Procedure更改代理的记录程序配置

  1. 设置日志级别。

  2. 为一个或多个日志记录类别设置输出通道(文件和/或控制台)。

  3. 如果要将输出记录到文件中,请为该文件配置转移条件。

    可以通过设置记录程序属性来完成上述步骤。可以使用以下两种方法之一来设置记录程序属性:

    • 启动代理之前,在该代理的 config.properties 文件中更改或添加记录程序属性。

    • 在启动代理的 imqbrokerd 命令中指定记录程序命令行选项。也可以使用代理选项 -D 来更改记录程序属性(或任何代理属性)。

    通过命令行传递的选项将覆盖代理实例配置文件中指定的属性。以下 imqbrokerd 选项影响日志记录:

    -metrics interval

    代理度量的日志记录时间间隔(以秒为单位)

    -loglevel level

    日志记录级别(ERRORWARNINGINFONONE

    -silent

    无提示模式(不向控制台记录消息)

    -tty

    将所有消息记录到控制台

    下面几节介绍了如何更改默认配置以执行下列操作:

    • 更改输出通道(日志消息的目的地)

    • 更改转移条件

更改输出通道

默认情况下,错误和警告消息除了记录到日志文件中以外,还会显示在终端上。(在 Solaris 中,错误消息还会写入到系统的 syslog 守护进程中。)

可以用以下方式更改日志消息的输出通道:


注 –

在更改记录程序输出通道前,必须确保日志记录级别已设置为支持映射到输出通道的信息。例如,如果将日志级别设置为 ERROR,然后将 imq.log.console.output 属性设置为 WARNING,那么将不会记录任何消息,因为没有启用 WARNING 消息的日志记录。


更改日志文件转移条件

转移日志文件有两个条件:时间和大小。默认情况下使用时间条件,每七天转移一次文件。

如果同时设置与时间和大小相关的转移属性,则转移将由最先达到的限制触发。前面已指出,代理最多维护九个转移文件。

可以在代理运行时设置或更改日志文件转移属性。要设置这些属性,请使用 imqcmd update bkr 命令。

将度量数据发送到日志文件

本节讲述使用代理日志文件报告度量信息的过程。有关配置记录程序的一般信息,请参见配置和使用代理日志记录

Procedure使用日志文件报告度量信息

  1. 配置代理的度量生成功能:

    1. 确认 imq.metrics.enabled=true

      默认情况下,用于日志记录的度量生成功能处于启用状态。

    2. 将度量生成时间间隔设置为合适的秒数。

      imq.metrics.interval=interval

      该值可以在 config.properties 文件中设置,也可以在启动代理时使用 -metrics interval 命令行选项进行设置。

  2. 确认记录程序是否收集度量信息:


    imq.log.level=INFO

    这是默认值。该值可以在 config.properties 文件中设置,也可以在启动代理时使用 -loglevel level 命令行选项进行设置。

  3. 确认记录程序是否已设置为将度量信息写入日志文件:


    imq.log.file.output=INFO

    这是默认值。它可以在 config.properties 文件中设置。

  4. 启动代理。

    下面显示了输出到日志文件的样例代理度量:


    [21/Jul/2004:11:21:18 PDT]
    Connections: 0    JVM Heap: 8323072 bytes (7226576 free) Threads: 0 (14-1010)
          In: 0 msgs (0bytes) 0 pkts (0 bytes)
         Out: 0 msgs (0bytes) 0 pkts (0 bytes)
     Rate In: 0 msgs/sec (0 bytes/sec) 0 pkts/sec (0 bytes/sec)
    Rate Out: 0 msgs/sec (0 bytes/sec) 0 pkts/sec (0 bytes/sec)

    有关度量数据的参考信息,请参见第 18 章,度量参考

记录停用消息

可以通过对代理启用停用消息日志记录来监视物理目的地。无论是否使用停用消息队列,都可以记录停用消息。

如果启用了停用消息日志记录,代理会记录以下类型的事件:

如果使用了停用消息队列,日志记录还会包括以下类型的事件:

下面是一个停用消息的日志格式示例:


[29/Mar/2006:15:35:39 PST] [B1147]: Message 8-129.145.180.87(e7:6b:dd:5d:98:aa)-
35251-1143675279400 from destination Q:q0 has been placed on the DMQ because 
[B0053]: Message on destination Q:q0 Expired: expiration time 1143675279402, 
arrival time 1143675279401, JMSTimestamp 1143675279400

默认情况下将禁用停用消息日志记录。要启用它,请设置代理属性 imq.destination.logDeadMsgs