Weblogic日志机制详解(原创)

简介:

服务器日志 
每个 WebLogic Server 实例将来自子系统和应用程序的所有消息写入位于本地主机上的服务器日志文件。默认情况下,服务器日志文件位于服务器实例根目录下的 logs 目录中;例如,DOMAIN_NAME\servers\SERVER_NAME\logs\SERVER_NAME.log,其中 DOMAIN_NAME 是在其中定位域的目录的名称,而 SERVER_NAME 是服务器的名称。

可在管理控制台的Gernal属性页中设置该文件的路径及名字,错误的输出的等级等。
每条日志消息都具有关联的严重程度级别。日志消息的级别大致说明其重要级别或紧急级别。WebLogic Server 具有从 TRACE 到 EMERGENCY 的预定义严重程度,在将日志请求调度给记录器时,会将对应严重程度转换为日志级别。日志级别有如下取值

可以在记录器和处理程序上设置日志严重程度级别。在记录器上进行设置时,任何处理程序都不会收到记录器已拒绝的事件。例如,如果在记录器上将日志级别设置为 NOTICE,则任何处理程序都不会收到 INFO 级别的事件。在处理程序上设置日志级别时,仅会对处理程序应用限制,而不会对其他程序应用限制。例如,为文件处理程序关闭 DEBUG 意味着不会将任何 DEBUG 消息写入日志文件,但会将 DEBUG 消息将写入标准输出。

DOMAIN日志 
除将消息写入服务器日志文件外,每个服务器实例还会将其一部分消息转发到域范围日志文件。默认情况下,服务器仅转发严重程度级别为 NOTICE 或更高的消息。虽然可以对转发哪些消息进行修改,但服务器永远不转发严重程度级别为 DEBUG 的消息。
域日志文件提供用于查看域整体状态的中央位置。域日志驻留在管理服务器的 logs 目录中。域日志文件的默认名称和位置是 DOMAIN_NAME\servers\ADMIN_SERVER_NAME\logs\DOMAIN_NAME.log,其中,DOMAIN_NAME 是在其中定位域的目录的名称,而 ADMIN_SERVER_NAME 是管理服务器的名称。
域日志中记录的时间戳是发出消息的服务器的时间戳。域日志中的日志记录不会按照其时间戳顺序写入;会在消息到达后立即将其写入。有可能受管服务器在一段时间内无法与管理服务器联系。在这种情况下,消息被缓冲在本地并在重新连接服务器之后发送到管理服务器。

HTTP访问日志 
在WebLogic中可以对用HTTP,HTTPS协议访问的服务器上的文件都做记录,该LOG文件默认的名字为Access.log,内容如下,该文件具体记录在某个时间,某个IP地址的客户端访问了服务器上的那个文件。
 
127.0.0.1 - - [25/Feb/2002:11:35:58 +0800] "GET /weather HTTP/1.1" 302 0
127.0.0.1 - - [25/Feb/2002:11:35:58 +0800] "GET /weather/index.Html HTTP/1.1" 200 176
 
HTTP访问日志的属性可在HTTP属性页中进行设置。

HTTP 子系统在文本文件中保留所有 HTTP 事务的日志。HTTP 访问日志的默认位置和滚动策略与服务器日志相同。可以为每个服务器或每个定义的虚拟主机设置用于定义 HTTP 访问日志行为的特性。

服务器实例如何将消息转发到域日志 
为将消息转发到域日志,每个服务器实例会广播其日志消息。服务器会广播除严重程度级别为DEBUG 的消息以外的所有消息和消息文本。
管理服务器会监听以上消息中的一部分消息,并将它们写入域日志文件。为监听这些消息,管理服务器在每台受管服务器中注册监听器。默认情况下,该监听器包含一个筛选器,仅允许将严重程度级别为 NOTICE 和更高级别的消息转发到管理服务器。具体机制参见下图


对于任何给定WebLogic Server 实例,可以覆盖默认筛选器并创建一个日志筛选器,从而将一组不同的消息集写入域日志文件。如果管理服务器不可用,则受管服务器继续将消息写入其本地的服务器日志文件。但在默认情况下,当重新连接到服务器时,并不会将断开连接期间写入的所有消息转发到域日志文件。受管服务器在缓冲区中保留指定数量的消息,从而在重新连接到服务器时可以将它们转发到管理服务器。在缓冲区中保留的消息数量由 LogMBean 上的 DomainLogBroadcasterBufferSize 特性配置。默认值为 1。如配置为使用默认值,则在重新连接管理服务器后,仅将最后记录的消息转发到该服务器。例如,如果管理服务器在两小时不可用之后恢复,则域日志中不包含这两小时内生成的任何消息。如果已配置大于 1 的值,则在受管服务器重新连接到管理服务器之后,会将对应数量的消息转发到域日志。
注意:这会导致在域日志文件中,具有较早时间戳的消息列在具有较晚时间戳的消息之后。当之前断开连接的受管服务器的缓冲区中消息刷新到管理服务器之后,即使这些消息是在域日志中原有消息之前生成的,它们也会直接追加到域日志中。 
日志消息格式 
在 WebLogic Server 实例向服务器日志文件中写入消息时,每条消息的第一行以 #### 开头,后跟该消息的特性。每个特性都括在尖括号中。
以下是服务器日志文件中一条消息的示例:
####<Sept 22, 2004 10:46:51 AM EST> <Notice> <WebLogicServer> <MyComputer> <examplesServer> <main> <<WLS Kernel>> <> <null> <1080575211904> <BEA-000360> 
<Server started in RUNNING mode> 

在此示例中,消息的特性为:按区域设置格式的时间戳、严重程度、子系统、计算机名、服务器名、线程 ID、用户 ID、事务 ID、诊断上下文 ID、原始时间值、消息 ID 和消息文本。(后面的消息特性部分中描述各个特性。)
如果一条消息不是在事务上下文中记录的,则即使不包含事务 ID,也会包含用于事务 ID 的尖括号。
如果该消息中包含一个堆栈跟踪,则该堆栈跟踪包含在消息文本中。WebLogic Server 为其写入的消息使用主机的默认字符编码。
标准输出和标准错误中输出的格式 
在 WebLogic Server 实例将一条消息写入标准输出时,该输出不包含 #### 前缀,也不包含服务器名、计算机名、线程 ID、用户 ID、事务 ID、诊断上下文 ID 和原始时间值字段。
以下示例说明如何将前一部分中的消息输出到标准输出中:
 
<Sept 22, 2004 10:51:10 AM EST> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>
 
在此示例中,消息特性为:按区域设置格式的时间戳、严重程度、子系统、消息 ID 和消息文本。 
图形界面操作 
登录weblogic后台进行相关操作
1.日志相关参数设置
左侧菜单:环境–>服务器
右侧菜单:服务器–>日志记录
只找到AdminServer.log、access.log,进行一些操作
如:设置日志文件的回滚,设置日志文件名等
2.日志查看
左侧菜单:环境–>服务器
右侧菜单:点击服务器名称
左侧菜单:诊断–>日志文件
右侧菜单:选中相关日志点击查看


参考至:http://edocs.weblogicfans.net/wls/docs92/logging/logging_services.html
http://www.xifenfei.com/2687.html
      http://mangogod.sinaapp.com/html/23.html
本文原创,转载请注明出处、作者
如有错误,欢迎指正
邮箱:czmcj@163.com

作者:czmmiao  文章出处:http://czmmiao.iteye.com/blog/1618500
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
存储 监控 Cloud Native
|
缓存 固态存储 关系型数据库
MySQL性能优化指南:深入分析重做日志刷新到磁盘的机制
MySQL性能优化指南:深入分析重做日志刷新到磁盘的机制
871 0
|
Java C++
JVM学习日志(九) 对象的finalization机制
对象的finalization机制 简述
343 0
|
NoSQL Redis 数据库
Redis内核基于时间点的备份恢复和基于AOF日志的增量同步机制设计
11月30日云栖社区在线培训,阿里云资深开发工程师夏德军为大家带来阿里云Redis内核优化的分享。本文从两大方面介绍阿里云Redis服务,一是Redis内核支持基于时间点的备份恢复,一是Redis基于AOF日志的增量同步机制设计,并分别通过假设场景,详细的分析了备份恢复流程和AOF PSYNC流程。
10678 1
|
SQL HIVE 消息中间件
日志采集框架Flume、Flume介绍、概述、运行机制、Flume采集系统结构图(1、简单结构、复杂结构)
1. 日志采集框架Flume 1.1 Flume介绍 1.1.1 概述 1.Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。 2.Flume可以采集文件,socket数据包等各种形式源数据,又可以将采集到的数据输出到HDFS、hbase、hive、kafka等众多外部存储系统中 3.一般的采集需求,通过对flume的简单配置即可实现
3722 0
|
Prometheus 监控 Kubernetes
Kubernetes 集群的监控与日志管理实践深入理解PHP的命名空间与自动加载机制
【5月更文挑战第30天】 在容器化和微服务架构日益普及的背景下,Kubernetes 已成为众多企业的首选容器编排工具。然而,随之而来的挑战是集群的监控与日志管理。本文将深入探讨 Kubernetes 集群监控的最佳实践,包括节点资源使用情况、Pods 健康状态以及网络流量分析等关键指标的监控方法。同时,我们也将讨论日志聚合、存储和查询策略,以确保快速定位问题并优化系统性能。文中将介绍常用的开源工具如 Prometheus 和 Fluentd,并分享如何结合这些工具构建高效、可靠的监控和日志管理系统。
|
存储 Java 物联网
SpringBoo利用 MDC 机制过滤出单次请求相关的日志
SpringBoo利用 MDC 机制过滤出单次请求相关的日志
|
应用服务中间件
weblogic配置、修改日志保存目录、配置滚动日志
weblogic配置、修改日志保存目录、配置滚动日志
1464 0
|
SQL 存储 缓存
【ACID底层实现原理、一致性非锁定读(MVCC的原理)、BufferPool缓存机制、重做日志刷盘策略、隔离级别】
【ACID底层实现原理、一致性非锁定读(MVCC的原理)、BufferPool缓存机制、重做日志刷盘策略、隔离级别】
51837 1
【ACID底层实现原理、一致性非锁定读(MVCC的原理)、BufferPool缓存机制、重做日志刷盘策略、隔离级别】