私はこのフォーラム、jbossドキュメント、およびインターネットでlog4j構成を7.1.1としてjbossで正常に動作させるために多くのことを読んでいますが、jbossでロギングサブシステムを使用したくありません。独自のlog4j構成を使用したい。私のjbossサーバーはスタンドアロンモードで設定されています。以下は、ドキュメントに基づいてlog4jを構成するために私が行ったことです。
- https://docs.jboss.org/author/display/AS71/How+To#HowTo-HowdoIuselog4j.propertiesorlog4j.xmlに従ってjboss-deployment-structure.xmlを定義し、これをMETA-INFに追加しました。私のEARのディレクトリ
- log4j.xmlをそのまま追加し、耳のlibディレクトリのjarファイルにパッケージ化しました。
- ロギングサブシステムと拡張モジュール="org.jboss.as.logging"をstandalone.xmlから削除しました。
- サブシステムが起動する前にjbossサーバーが使用するロギングを読んだので、startup.shでスタートアップパラメーターとして提供されるlogging.propertiesを変更しませんでした。
これらすべてを実行しても、log4j構成に従ってアプリケーションにログを記録させることができません。
ロギングサブシステムの代わりに独自のlog4j構成を使用する理由は、ローテーションされたファイルにファイル名にタイムスタンプを付けるため、size-rotating-file-handlerにカスタムローリングファイルアペンダーを使用できるようにするためです。
感謝します、
では、SizeRotatingFileHandler.javaから拡張するクラスMyHandler.javaを作成し、preWriteメソッドをオーバーライドしました。MyHandler.javaはパッケージabcにあります。モジュール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を起動すると、クラスabcMyHandlerが見つからないと表示されます。このエラーを解決するにはどうすればよいですか?
更新:このエラーを解決しました。モジュール内のパッケージ構造に問題がありました。ただし、jboss-as-7.1.1.Finalを使用してlog4jを設定するという元の質問に戻ります。