2016-04-18 9 views
1

Ich benutze Dropwizard 0.7-rc1. Ich kann ein Protokoll schreiben, indem ich config.yaml zur Verfügung stelle. Ich möchte einige der Eigenschaften durch Code überschreiben. Ich habe es mit Code versucht, aber es funktioniert nicht.Dropwizard Protokollierung Code

Code.

@Override 
    public void run(XConfiguration configuration, Environment environment) 
      throws Exception { 
     configuration.setLoggingFactory(null); 
     LoggingFactory loggingFactory = new LoggingFactory(); 
     FileAppenderFactory fileAppenderFactory = new FileAppenderFactory(); 
     fileAppenderFactory.setArchive(true); 
     fileAppenderFactory.setArchivedFileCount(7); 
     fileAppenderFactory.setArchivedLogFilenamePattern("rest_service-%d{yyyy-MM-dd}-%i.log.gz"); 
     Duration duration = Duration. milliseconds(100); 
     fileAppenderFactory.setBatchDuration(duration); 
     fileAppenderFactory.setBatchSize(128); 
     fileAppenderFactory.setBounded(false); 
     fileAppenderFactory.setCurrentLogFilename("rest_service.log"); 
     fileAppenderFactory.setLogFormat("%-6level [%d{HH:mm:ss.SSS}] [%t] %logger{5} - %X{code} %msg %n"); 
     fileAppenderFactory.setThreshold(Level.INFO); 
     fileAppenderFactory.setTimeZone(TimeZone.getTimeZone("UTC")); 
     ArrayList<AppenderFactory> arrayList = new ArrayList<AppenderFactory>(); 
     arrayList.add(fileAppenderFactory); 
     loggingFactory.setAppenders(arrayList); 
     configuration.setLoggingFactory(loggingFactory); 

     //registered some resources.  
} 

Also, wie kann ich es tun?

Antwort

0

Sie können die Protokollierung in DropWizard durch Überschreiben der Fabrik überschreiben. Siehe DefaultLogginFactory für die Klasse.

Ich schrieb ein komplettes Beispiel dafür, wie bis zu Dinge in dropwizard überschreibt hier:

Dropwizard doesn't log custom loggers to file

Im Wesentlichen werden Sie die Build-Methode in dem Logging-Werk überschrieben werden sollen und Ihren eigenen Code dort hinzu.

Ich hoffe, das hilft,

Artur