Ich hätte gerne eine logback.xml-Datei für die Produktion und eine andere mit anderen Parametern in meiner Staging-Umgebung. Mein Code kann automatisch zur Laufzeit wissen, ob er auf Produktion oder Laufzeit läuft. Gibt es eine Möglichkeit, die Logback-Konfigurationsdatei zur Laufzeit zu setzen?Wie konfiguriere ich die Logback-Konfigurationsdatei zur Laufzeit?
Antwort
Methode 1: Laden von verschiedenen Dateien
Sie können zwei verschiedene Konfigurationsdateien halten und die Datei für die jeweilige Umgebung mit JoranConfiguratior#doConfigure
beim Start der Anwendung laden.
Siehe http://logback.qos.ch/manual/configuration.html#joranDirectly. Beispielcode auch von dort mit Modifikationen für Ihren Fall genommen:
public class MyApp3 {
final static String STAGING_CONFIGURATION = "/path/to/statging.xml";
final static String PRODUCTION_CONFIGURATION = "/path/to/production.xml";
final static Logger logger = LoggerFactory.getLogger(MyApp3.class);
public static void main(String[] args) {
// assume SLF4J is bound to logback in the current environment
LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
// determine environmental specific configuration path
final String path = isProdcution() ? PRODUCTION_CONFIGURATION : STAGING_CONFIGURATION;
try {
JoranConfigurator configurator = new JoranConfigurator();
configurator.setContext(context);
// Call context.reset() to clear any previous configuration, e.g. default
// configuration. For multi-step configuration, omit calling context.reset().
context.reset();
configurator.doConfigure(path);
} catch (JoranException je) {
// StatusPrinter will handle this
}
StatusPrinter.printInCaseOfErrorsOrWarnings(context);
logger.info("Entering application.");
Foo foo = new Foo();
foo.doIt();
logger.info("Exiting application.");
}
}
Natürlich Code der richtigen Dateinamen für das Erhalten werden kann angepasst Ihre Bedürfnisse paßt. Darüber hinaus gibt es einige überladene doConfigure
Methoden (http://logback.qos.ch/apidocs/ch/qos/logback/core/joran/GenericConfigurator.html#doConfigure%28java.io.File%29), die auch InputStreams, Dateien und URLs nimmt.
Methode 2: Verwenden conditionals in einer Datei
Wenn Sie Ihre Umgebung mit logbag Build in Eigenschaften oder Systemeigenschaften bestimmen können, können Sie bedingte Konfigurationen verwenden:
http://logback.qos.ch/manual/configuration.html#conditional
<!-- if-then form -->
<if condition="condition for your production">
<then>
...
</then>
<else>
...
</else>
</if>
- 1. Wie konfiguriere ich Ecto zur Laufzeit?
- 2. Wie setze ich java.net.preferIPv4Stack = true zur Laufzeit?
- 3. Wie ändere ich persistence.xml zur Laufzeit
- 4. Ich bekomme java.lang.UnsatisfiedLinkError zur Laufzeit
- 5. Android, wie die Anwendungssprache zur Laufzeit ändern
- 6. Wie die DiscriminatorValue zur Laufzeit bekommen
- 7. Wie konfiguriere ich ob_tidyhandler dynamisch?
- 8. Wie kann ich die Plattform zur Laufzeit mit MvvMCross erkennen?
- 9. Wie programmiere ich die App-ID zur Laufzeit?
- 10. Wie ändere ich die Farbe eines textArea zur Laufzeit?
- 11. Wie ändere ich die Sprache zur Laufzeit in Java Swing
- 12. die Annotationsinformationen zur Laufzeit abrufen
- 13. Wie konfiguriere ich Felix OBR-Repositories?
- 14. Wie konfiguriere ich Quartz DataSource URL dynamisch?
- 15. Wie konfiguriere ich Mercurial zur Verwendung von Umgebungsvariablen in mercurial.ini?
- 16. Wie konfiguriere ich PyCharms Coverage Checker zur Erkennung von .coveragerc?
- 17. Wie konfiguriere ich Indy v10 zur Unterstützung von IPv4 + IPv6?
- 18. Wie konfiguriere ich eine AngularJS App zur Ladezeit?
- 19. Wie konfiguriere ich die OpenJPA SQL-Protokollierung?
- 20. Wie konfiguriere ich die Public-Key-Authentifizierung?
- 21. Einstellung "Modal" zur Laufzeit
- 22. Kann ich zur Laufzeit Klassenklasseninstanzen unterscheiden?
- 23. Ninject zur Laufzeit verbindlich
- 24. So ändern Sie die Ansicht zur Laufzeit
- 25. So ändern Sie die Dateierweiterung zur Laufzeit
- 26. create Tframes zur Laufzeit:
- 27. Wie konfiguriere ich connect-mongo
- 28. Setze Klasseneigenschaft zur Laufzeit
- 29. JPA-Kaskadenoptionen zur Laufzeit
- 30. Speichern xamlx zur Laufzeit
Benutzt du Frühling? – John
nein! Einfaches altes Java. – poiuytrez