2013-05-02 15 views
18

Yay kütüklerini bir dosyaya ve konsola yazdırmak için Log4j2 kullanmaya çalışıyorum. Log4j2 yapılandırmamda bir sorun olduğunu düşünüyorum. Çalışmayı başaramadım. Benim log4j2.xml dosyasında bu yapılandırmaya sahip:Log4j2'yi Kullanarak Günlüğe Kaydetme Baharı

<?xml version="1.0" encoding="UTF-8"?> 
<configuration name="defaultConfiguration" status="warn" strict="true" monitorInterval="5"> 
    <properties> 
     <property name="patternlayout">%d{ISO8601} [%t] %-5level %logger{36} - %msg%n%throwable{full}</property> 
     <property name="filename">${env:MY_ROOT}/logs/mylog.log</property> 
     <property name="filenamePattern">${env:MY_ROOT}/logs/mylog-%d{yyyy-dd-MM}-%i.log.gz</property> 
    </properties> 
    <appenders> 
     <appender name="Console" type="Console" target="SYSTEM_OUT"> 
      <layout type="PatternLayout" pattern="${patternlayout}" /> 
     </appender> 
     <appender name="File" type="RollingFile" fileName="${filename}" filePattern="${filenamePattern}" bufferedIO="true" immediateFlush="true" 
     append="true"> 
      <layout type="PatternLayout" pattern="${patternlayout}" /> 
      <Policies> 
       <TimeBasedTriggeringPolicy /> 
       <SizeBasedTriggeringPolicy size="50 MB" /> 
      </Policies> 
      <DefaultRolloverStrategy max="30" /> 
     </appender> 
     <appender name="AsynchFile" type="asynch" blocking="true" bufferSize="128"> 
      <appender-ref ref="File" /> 
     </appender> 
    </appenders> 
    <loggers> 
     <root level="info"> 
      <appender-ref ref="Console" /> 
      <appender-ref ref="AsynchFile" /> 
     </root> 
     <logger name="org.springframework.beans"> 
      <appender-ref ref="Console" /> 
      <appender-ref ref="AsynchFile" /> 
     </logger> 
    </loggers> 
</configuration> 

Bunlar benim pom dosyasında var bağımlılıkları şunlardır: (muhtemelen bazıları gerekli değildir)

<dependency> 
<groupId>org.slf4j</groupId> 
<artifactId>slf4j-api</artifactId> 
<version>1.6.6</version> 
</dependency> 

<dependency> 
<groupId>org.slf4j</groupId> 
<artifactId>slf4j-log4j12</artifactId> 
<version>1.6.6</version> 
</dependency> 

<dependency> 
<groupId>org.apache.logging.log4j</groupId> 
<artifactId>log4j-api</artifactId> 
<version>2.0-beta5</version> 
</dependency> 

<dependency> 
<groupId>org.apache.logging.log4j</groupId> 
<artifactId>log4j-core</artifactId> 
<version>2.0-beta5</version> 
</dependency> 
<dependency> 
<groupId>org.apache.logging.log4j</groupId> 
<artifactId>log4j-1.2-api</artifactId> 
<version>2.0-beta5</version> 
</dependency> 

<dependency> 
<groupId>com.lmax</groupId> 
<artifactId>disruptor</artifactId> 
<version>3.0.0.beta3</version> 
</dependency> 

değilim Java kodumda bahar ile ilgili herhangi bir şey yapmak. Ana sınıfımı, yay yapılandırmamı okuyan ve fasulyeyi yükleyen Apache Camel'den kullanıyorum.

Neyi yanlış yapıyorum? Teşekkürler!

Düzenleme: Herhangi bir çıktıda (konsol veya dosya) yay kütüklerini almıyorum. Ancak, oluşturduğum günlükleri java kodumda alabiliyorum. Umarım bu açıklama yardımcı olacaktır.

cevap

15

Pomanızdaki bağımlılıkları göz önünde bulundurarak, buna sahipsiniz: slf4j-log4j12. Bu, log4j-1.2 uygulamasına yönlendirilecek slf4j api'ye karşı günlük ifadelerine neden olur. Muhtemelen bunların Log4j-2.0 uygulamasına yönlendirilmesini istiyorsunuz. slf4j-log4j12'yi log4j-slf4j-impl ile değiştirip tekrar deneyebilir misiniz?

+0

Yayımla ilgili daha fazla bilgi edinebilmeniz için yayınımı güncelledim. Yardım için teşekkürler. – hveiga

+0

Bugüne kadar cevabınızı görmedim, üzgünüm! Bunu test edeceğim ve size bildireceğim. Cevap için teşekkür ederim. – hveiga

+1

Birkaç ay geçti, ama işe yaradı! Tekrar teşekkürler. – hveiga

19

Eğer Log4j 2 yönlendirilmiş bu günlüğü sahip olmak istiyorsanız,

<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-jcl</artifactId> 
    <version>2.1</version> 
</dependency> 

çıkarmayın sizin pom.xml'Bu bağımlılıkları eklemek gerekir böylece, yay kullanımı yaygın-günlüğü 1.X kaynaklanan bu sorun senin common-logging 1.X bağımlılıkları

+3

Log4j-jcl sürümünün kullanılan log4j2 sürümüyle eşleşmesi gerektiğini ekleyebilir veya sınıf uyumsuzluğu sorunları olacaktır. –

+0

Bu, bahar günlüğü sorunumu çözdü. Teşekkürler! –

İlgili konular