我一直在閱讀很多關於這個論壇,jboss文檔和互聯網上成功獲取log4j配置以使用jboss作爲7.1.1,我不想使用jboss中的日誌子系統。我想使用我自己的log4j配置。我的jboss服務器配置爲獨立模式。下面是我做的log4j配置爲基於Docs軟件以便得到:使用jboss-as-7.1.1配置log4j
- 定義一個JBoss部署,structure.xml按https://docs.jboss.org/author/display/AS71/How+To#HowTo-HowdoIuselog4j.propertiesorlog4j.xmlinsteadofusingtheloggingsubsystemconfiguration%3F,我添加了這個在我耳邊
- 我的META-INF目錄按原樣添加一個log4j.xml,並將其打包在我的耳朵的lib目錄中的jar中。
- 從standalone.xml中刪除日誌子系統和擴展模塊=「org.jboss.as.logging」。
- 因爲我讀過的是,JBoss服務器將子系統踢之前,使用記錄我並沒有改變其作爲startup.sh啓動參數提供的logging.properties。
儘管做了所有這些,我無法讓應用程序按照我的log4j配置進行登錄。
我使用我自己的log4j配置而不是日誌子系統的原因是能夠使用自定義滾動文件appender進行大小旋轉文件處理程序,因爲我希望旋轉後的文件具有時間戳附加到文件名。
幫助理解,
好了,我創建從SizeRotatingFileHandler.java延伸的類MyHandler.java和我重寫預寫方法。 MyHandler.java位於a.b.c包中。我在模塊a/b/c下創建一個子目錄,並在c目錄內部添加一個只包含Myhandler.class文件的jar。我添加了一個module.xml
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="a.b.c">
<resources>
<resource-root path="RotatingHandler.jar"/>
<!-- Insert resources here -->
</resources>
<dependencies>
<module name="org.jboss.logging"/>
</dependencies>
</module>
然後在standalone.xml我添加了自定義的處理
<custom-handler name="FILE3" class="a.b.c.MyHandler" module="a.b.c">
<level name="INFO"/>
<formatter>
<pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
</formatter>
<file relative-to="jboss.server.log.dir" path="srveree.log"/>
</custom-handler>
條目當我啓動JBoss它說,它不能找到類a.b.c.MyHandler。我如何解決這個錯誤?
更新:我解決了這個錯誤。模塊內部的包裝結構存在問題。但是,我仍然回到了用jboss-as-7.1.1.Final配置log4j的原始問題。
謝謝你的迴應James。是的,EAR/lib目錄中有一個log4j-1.2.17.jar。另外我也嘗試將log4j.xml放在EAR/META-INF目錄中,但它仍然沒有從那裏讀取日誌配置。 – TYS
對SizeRotatingFileHandler的引用很有趣,我試着擴展SizeRotatingFileHandler並僅覆蓋preWrite方法。但是我不知道如何獲取當前日誌文件的句柄。 – TYS
我不確定通過獲取當前日誌文件的句柄來遵循你的意思。 –