Не удается изменить формат файла журнала в GlassFish 3.1.2.2

Я пытался настроить ведение журнала для моего приложения, которое развернуто на GlassFish 3.1.2.2. Во-первых, я прочитал несколько уроков, как настроить SLF4J и применить его к моему приложению и GF. Я нашел тот, который был очень полезен, потому что регистрация начала работать. Однако способ хранения журналов Glassfish меня очень раздражает. Я нашел несколько ответов ( эта публикация казалась удовлетворительной), но, к сожалению, я столкнулся с проблемой, которую не могу решить. Я написал свой собственный модуль форматирования и поместил его в Glassfish, как в посте выше, и он работает, но только частично. Когда я вижу журналы в консоли NetBeans, они выглядят так, как я хотел бы, чтобы они выглядели:

INFO: 2014-03-30 20:48:51,768 INFO  p.e.a.w.kino.rk.rest.SessionService - User (admin) has successfully logged out

Однако в файле server.log они по-прежнему имеют формат GlassFish.

[#|2014-03-30 20:48:51.769|INFO|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=93;_ThreadName=Thread-2;|2014-03-30 20:48:51,768 INFO  p.e.a.w.kino.rk.rest.SessionService - User (admin) has successfully logged out.
|#]

Я создал два файла со свойствами ведения журнала, как было предложено в первой ссылке, поэтому я прикрепляю эти два файла:_logging.properties

handlers = org.slf4j.bridge.SLF4JBridgeHandler
com.sun.enterprise.server.logging.GFFileHandler.flushFrequency=1
com.sun.enterprise.server.logging.GFFileHandler.file=${com.sun.aas.instanceRoot}/logs/server.log
com.sun.enterprise.server.logging.GFFileHandler.rotationTimelimitInMinutes=0
com.sun.enterprise.server.logging.GFFileHandler.logtoConsole=false
com.sun.enterprise.server.logging.GFFileHandler.rotationLimitInBytes=2000000
com.sun.enterprise.server.logging.GFFileHandler.alarms=false
com.sun.enterprise.server.logging.GFFileHandler.formatter=pl.edu.amu.wmi.kino.rk.utils.ReportKeeperLogFormatter
com.sun.enterprise.server.logging.GFFileHandler.retainErrorsStasticsForHours=0
com.sun.enterprise.server.logging.GFFileHandler.level=ALL
java.util.logging.FileHandler.formatter=pl.edu.amu.wmi.kino.rk.utils.ReportKeeperLogFormatter

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  <layout class="ch.qos.logback.classic.PatternLayout">
   <Pattern>%d %-5level %logger{36} - %msg%n</Pattern>
  </layout>
 </appender>

    <appender name="FILE" class="ch.qos.logback.core.FileAppender">        
    <file>${com.sun.aas.instanceRoot}/logs/server.log</file>        
    <encoder>
        <pattern>%date %level [%file:%line] %msg%n</pattern>
    </encoder>
    </appender>

 <logger name="com.sido">
  <level value="debug" />
 </logger>

 <logger name="org.springframework">
  <level value="debug" />
 </logger>

 <root>
  <level value="debug" />
  <appender-ref ref="console" />
 </root>
</configuration>

На каком-то другом сайте я нашел эту вещь с другим appender в logback.xml, но это не сработало.

ОБНОВЛЕНИЕ Я изменил файл в приложении "ФАЙЛ" в logback.xml на какой-то другой файл, т.е. temp_server.log, и файл был создан, но к нему ничего не добавлено.

Не могли бы вы сказать мне, что я пропускаю или делаю неправильно?

1 ответ

Я нашел решение сегодня. Я не читал точно, как бороться с файловыми апдендерами. Теперь все в порядке, поэтому я выложу свое решение - изменил logback.xml. Теперь он поддерживает File Rolling Policy и сохраняет журналы так, как я хотел.

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
  <layout class="ch.qos.logback.classic.PatternLayout">
   <Pattern>%d %-5level %logger{36} - %msg%n</Pattern>
  </layout>
 </appender>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${com.sun.aas.instanceRoot}/logs/rk_log.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${com.sun.aas.instanceRoot}/logs/rk_log_%d{yyyy-MM-dd}.log</FileNamePattern>
        </rollingPolicy>

        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%date{YYYY-MM-dd HH:mm:ss} %-5level %logger{35} - %msg%n</Pattern>
        </layout>
    </appender>

 <root level="INFO">
    <appender-ref ref="FILE"/>
 </root>   

 <logger name="com.sido">
  <level value="debug" />
 </logger>

 <logger name="org.springframework">
  <level value="debug" />
 </logger>

 <root>
  <level value="debug" />
  <appender-ref ref="console" />
 </root>
</configuration>
Другие вопросы по тегам