JBoss – Loglama hakkında

Herkese merhaba,

Ne yazık ki geçen ay yazamadım, bu ay da şimdilik kendime hatırlatma olması amacıyla, basit bir yazı hazırladım.

JBoss’ta loglama Tomcat vs gibi uygulama sunucularından biraz farklı. Hatta 7.1’deki bir sorundan ötürü diğer ortamlarda çalışan log4j düzeninizin çalışmadığını farkedebilirsiniz. Neyse ki JBoss, sizin handle edilmeyen logger çağrılarınızı kendisi handle ediyor fakat siz belirtmediyseniz bir yere yazmıyor. Bunların yazılması için yapmanız gereken bir kaç işlem var:

1 – İlk olarak uygulamanız için loglama yapacak logger’ı tanımlamak. Bunun için standalone.xml ayar dosyasını açmanız gerekiyor. (dosya JBOSS_HOME/standalone/configuration/standalone.xml).

2 – Dosyanın içinde <subsystem xmlns=”urn:jboss:domain:logging:1.1″> noktasını bulun. Bu xml elementinin içine

<logger category=”proje.paketinin.ismi”>
<level name=”TRACE”/>
</logger>

şeklinde logger elemanını tanımlayın.

3 – Daha sonra yine aynı subsystem elemanının içine kendi handler’ınızı tanımlayın, ben örnekte periodic file handler tanımlıyorum.

<periodic-rotating-file-handler name=”APPLICATION”>
<level name=”DEBUG”/>
<formatter>
<pattern-formatter pattern=”%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n”/>
</formatter>
<file path=”/home/username/log_jboss/app_name.log”/>
<suffix value=”.yyyy-MM-dd”/>
<append value=”true”/>
</periodic-rotating-file-handler>

4 – Son olarak da root logger’ının içinde demin tanımladığınız handlerı ekleyin.

<root-logger>
<level name=”INFO”/>
<handlers>
<handler name=”CONSOLE”/>
<handler name=”FILE”/>
<handler name=”APPLICATION”/>
</handlers>
</root-logger>

 

Tüm bu adımlardan sonra JBoss ve uygulamanızı tekrar başlatın. Ve yazılan logların keyfini çıkarın : )