2010-01-21 31 views
2

我想更改Weblogic服務器日誌的日誌格式。現在它使用默認格式生成日誌 - 我希望能夠指定我自己的格式。如何更改Weblogic 10/11的日誌格式?

例如,它生成日誌,看起來像這樣:

####<Jan 21, 2010 3:24:24 PM EST> <Info> <Socket> <FS2LOANER-00981> <DPSCoreServer1> <[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1264105464314> <BEA-000436> <Allocating 2 reader threads.> 
####<Jan 21, 2010 3:24:24 PM EST> <Info> <Socket> <FS2LOANER-00981> <DPSCoreServer1> <[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1264105464314> <BEA-000446> <Native IO Enabled.> 

我試圖通過使WebLogic使用Log4j作爲日誌系統並讓它用我的log4j.properties文件定義修改日誌格式我想要的日誌格式。但是,weblogic不會選擇我的log4j.property文件設置,並繼續以所需的格式登錄,無論我嘗試什麼。

這實際上是一個非常類似的問題,以下帖子,但這個問題從來沒有真正得到答案(批准的答案是關於如何打開log4j調試,這並沒有幫助我找出爲什麼weblogic不拾起我的log4j.properties文件)。 Using log4j logging in weblogic 9/10

+0

您希望WebLogic可以通過超過1,564個視圖發現這是他們實現的一個很好的功能。 – BestPractices 2011-05-11 17:13:49

回答

1

據我所知,您不能(也不會,您不想)更改WebLogic Server自己的Log Message Format(如果出現問題,支持人員將很樂意獲得所需的信息)。

但是可以配置WebLogic中使用Log4j(見How to Use Log4j with WebLogic Logging Services),當啓用Log4j的,你可以到org.apache.log4j.Logger參考該服務器使用,並附上自己的appender。

當Log4j的啓用,你會得到一個 參考 org.apache.log4j.Logger的 服務器從 weblogic.logging.log4j.Log4jLoggingHelper 類使用。

用Log4j Logger的參考,你可以 附加你自己的自定義appender到 接收服務器日誌事件;對於 示例,您可能附加了一個appender ,它將服務器日誌事件發送到 Syslog或Windows事件查看器。 此外,您可以使用Logger 引用來發出登錄請求到 WebLogic日誌記錄服務;此 要求Log4j庫爲 可用於您部署的 應用程序。

但是,這不是WebLogic自己的日誌的替代。

2

創建一個域啓動類如下:

import org.apache.log4j.PatternLayout; 

import weblogic.logging.LoggerNotAvailableException; 
import weblogic.logging.log4j.Log4jLoggingHelper; 

public class LoggingConfigurator { 
    public static void main(String[] args) { 
     try { 
      System.out.println("Configuring Log4j pattern"); 
      Log4jLoggingHelper.getLog4jServerLogger().getAppender("WLLog4jRotatingFileAppender") 
        .setLayout(new PatternLayout("%d{ISO8601} %-5p [%c] - %m%n")); 
     } catch (LoggerNotAvailableException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

阿姆農

0

我無意更換WebLogic的記錄,但我有一個很強烈的願望來配置日誌格式。 Amnon發佈的方法效果很好(所以我不確定爲什麼你說你不能改變格式);我只想要一些額外的細節。

關於我看到的唯一負面的方法是,如果您將StdOut/StdErr重定向到日誌子系統,它會在日誌中顯示%c轉換字符的空值;如果我不改變佈局模式,然後我看到,而不是。

是我想看到的原始模式佈局字符串,所以我可以做我的更改並保存在日誌文件中。

0

到目前爲止的帖子沒有回答原來的問題,這就是爲什麼WebLogic沒有選擇在log4j.properties文件中配置的所需日誌格式。

聽起來你正在使用WL的服務器日誌橋將應用程序的log4j消息重定向到WL服務器的日誌記錄服務?如果這個假設是正確的,則從Configuring Log Files and Filtering Log Messages for Oracle WebLogic Server開始,您需要在WL服務器的啓動命令中傳遞參數,以加載正確的log4j配置,

-Djava.util.logging.config.file =/[PATH]/log4j.properties

清除器只是在啓動WL時通過此JVM選項,但也可以像上一篇文章中那樣編程實現它。

0

Weblogic沒有選擇你的log4j.properties,因爲它不知道它有一個。

您需要轉到服務器的類路徑並將路徑附加到屬性文件,保存更改並重新啓動服務器。它應該做的伎倆。