2016-04-13 19 views
1

Şu anda uygulamanızda Spring Boot kullanıyorum ve varsayılan günlük uygulaması olarak Logback kullandığını biliyorum. Bu, şu anda bir dosyaya kaydederSpring Boot uygulamasında günlük dosyasına zaman damgası ekleniyor mu?

#some other properties 

#logging details 
logging.path= path/to/my/log/folder 

: spring.log benim çıkış klasöründe

anda benim applications.properties dosyasında aşağıdaki var.

Bu dosyayı, oluşturulduğu zaman zaman damgası ve tarih içerecek şekilde nasıl değiştirebilirim?

Ör - "my-uygulama-TARİH-TIME.log log" Bu eklemeyi deneyin, appender olarak

cevap

0

Bırak .properties dosya tarzı yapılandırma ve kullanma logback en uygun bir - logback.xml. Spring Boot tamamen bunun için hazır! İşte bir örnek: Bu sadece günlük dosyasına bir zaman damgası eklemez

<property name="logPattern" value="%d %-5level %logger{35} - %msg%n"/> 
<property name="logEncoding" value="UTF-8"/> 
<property name="logDirectory" value="logs"/> 

<appender name="fileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>${logDirectory}/myapplication.log</file> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <fileNamePattern>${logDirectory}/myapplication_%d{yyyy-MM-dd}.%i.log</fileNamePattern> 
     <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>30MB</maxFileSize> 
     </timeBasedFileNamingAndTriggeringPolicy> 
    </rollingPolicy> 
    <encoder> 
     <charset>${logEncoding}</charset> 
     <pattern>${logPattern}</pattern> 
    </encoder> 
</appender> 

<logger name="org.springframework" level="warn"/> 

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

ama (mesela o kadar eski günlükleri devam edeceğiz yanı günlük rotasyon ile yardımcı olacaktır belli bir boyuta ulaşırlar, vb.).

+0

Teşekkürler, bunu projeme nereye koyayım? – java123999

+0

Bir maven tabanlı projeye sahip olduğunuzu varsayarak, sadece logback.xml adında bir dosya oluşturun ve src/main/resources altına koyun, ardından içeriği o dosyaya kopyalayın. Ayrıca, bir hata yaptım ve tüm dosyayı burada kopyalamayın ... Dosyayı ile başlatın ve uygun bir XML yapmak için ile sonlandırın. –

+0

Logback yapılandırması için birkaç örnek için bu bağlantıyı kontrol edin. http://www.mkyong.com/logging/logback-xml-example/ –

0

:

<layout class="ch.qos.logback.classic.PatternLayout"> 
      <Pattern> 
       %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n 
      </Pattern>  </layout> 
+0

Ekleyen tarafından ne demek istediğinden emin değilim? Teşekkürler – java123999

0

Bunu yapmak için doğru yoldasın. Application.properties dosyasını özelleştirmek için property support Spring Boot uygulamasını kullanın. sizin destek sınıfında

Öte yandan ise
// application.properties file 
app.name=appname 
logging.path=logpath 
logging.file=${appname}-{timestamp}.log 

, sen özellik değerini almak için bir URL yardımcı oluşturabilirsiniz:

/** 
* Helper class to get configured urls. 
*/ 
@Component 
public class UrlHelper { 

    @Inject 
    private Environment env; 

    private static final String LOGGING_TIMESTAMP = "{timestamp}"; 

private static String loggingFileUrlPattern; 

/** 
    * Initializes properties. 
    */ 
    @PostConstruct 
    public void initProperties() { 

     loggingFileUrlPattern = env.getRequiredProperty("logging.file"); 
    } 

/** 
    * Formats the loggin Url pattern application property with the current 
    * timestamp 
    * 
    * @param timestamp 
    *   current timestamp. 
    * @return The complete logging file url. 
    */ 

    public static String buildLoggingFileUrl(String timestamp) { 
     return loggingFileUrlPattern.replace(LOGGING_FILE_URL, timestamp); 
    } 
} 

yardımcı olur Umut!