ここではJBoss As 7でのロギングの設定方法に関して記載したいと思います。
特に、今回自分で設定をしていて、server.logに対してローテーションしない現象について記載します。
前提条件
- JBoss As 7.1.1Final
- Windows XP
- JBossはインストール済みと前提
JBossに対してのログの設定
JBoss As 7でのロギング処理には、Apacheのlog4jが使われており、log4jの設定内容が反映されます。また、JBoss As 7での各種設定内容は、standalone.xmlに集約されており、ロギングの設定もこのstandalone.xmlで行います。
尚、ロギングでは、以下の様な設定が可能である。
- ログレベルでのログ操作(DEBUG < INFO < WARN < ERROR < FATAL)
- logファイル名の変更
- ログの出力フォーマットの変更
- ログファイルのローテーション
- ログの出力先
- 「${JBOSS_HOME}\standalone\configuration\standalone.xml」を開き、<profile>以下の
<subsystem xmlns="urn:jboss:domain:logging:1.1">内に以下を記載します。
<profile> <subsystem xmlns="urn:jboss:domain:logging:1.1"> <size-rotating-file-handler name="ROTETION_ROOT"> <formatter> <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p %x [%c{1}] (%t) %s%E%n"/> </formatter> <file relative-to="jboss.server.log.dir" path="xxx_server.log"/> <rotate-size value="1K"/> <max-backup-index value="3"/> <append value="true"/> </size-rotating-file-handler> <root-logger> <level name="INFO"/> <handlers> <handler name="CONSOLE"/> <handler name="ROTETION_ROOT"/> </handlers> </root-logger>
デフォルトのログ出力ファイル名は「server.log」ですが、この状態でローテーションの設定をしても反映されず、ログが溜まってきました。(原因は調査不足の為不明)
なので、このファイル名を違うファイル名にするとローテーションの設定が反映されます。
サンプルプログラム
JBossのログ出力はJBossのロガーを使用します。package test; import org.jboss.logging.Logger; public class Test { /** * ログインスタンス. */ private final Logger logger = Logger.getLogger(this.getClass().getName()); public void test() { logger.debug("test"); logger.info("test"); } }
0 コメント:
コメントを投稿