2012-02-28 14 views
5

W projekcie mam następujący na ścieżce klasy:Logback FileAppender - plik logu jest pusty?

Bundle-ClassPath: ., 
lib/logback-classic.jar, 
lib/logback-core.jar, 
lib/slf4j-api.jar 

a następnym w build.properties:

bin.includes = META-INF/,\ 
       .,\ 
       plugin.xml,\ 
       lib/logback-classic.jar,\ 
       lib/logback-core.jar,\ 
       lib/slf4j-api.jar,\ 
       logback.xml 

w korzeniu Mam też plik logback.xml zawierający:

<!-- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> --> 
<!--  <layout class="ch.qos.logback.classic.PatternLayout"> --> 
<!--  <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n --> 
<!--  </Pattern> --> 
<!--  </layout> --> 
<!-- </appender> --> 
    <root level="debug"> 
    <appender-ref ref="STDOUT" /> 
    </root> 
    <appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
    <File>logs\\logfile.log</File> 
    <Append>true</Append> 
    <layout class="ch.qos.logback.classic.PatternLayout"> 
     <Pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n 
     </Pattern> 
    </layout> 
    </appender> 
</configuration> 

W klasie, która pobiera wykonywane na Uruchomienie mam:

private static final Logger logger = LoggerFactory.getLogger(Application.class.getName()); 
    public Object start(IApplicationContext context) { 
    logger.debug("debug string"); 
    logger.warn("warn string"); 
    logger.error("error string"); 

Kiedy zbudować i uruchomić mojej aplikacji loguje plików \ ​​Plikdziennika.log tworzony jest w katalogu głównym mojej aplikacji, ale jego puste. Jeśli używam konsoli ConsoleAppender i włączam konsolę, działa dobrze.

Dlaczego funkcja logback nie zapisuje do pliku dziennika podczas korzystania z FileAppendera?

Odpowiedz

7

Próbowałeś z dodawaniem plików appender-ref do korzenia w logback.xml jak pokazano poniżej:

<root level="debug"> 
    <appender-ref ref="STDOUT" /> 
    <appender-ref ref="FILE" /> 
</root> 
+0

Superb odpowiedź Dzięki Girish! – sunleo