Dies wird von Anfang an unterstützt. Hier ist mein Beispiel:
server:
rootPath: /api/*
requestLog:
appenders: []
applicationConnectors:
- type: http
port: 9085
logging:
level: INFO
loggers:
"my-log-1":
level: DEBUG
additive: false
appenders:
- type: file
currentLogFilename: /home/artur/var/log/test1.log
archivedLogFilenamePattern: /home/artur/var/log/test1.log%d.log.gz
archivedFileCount: 5
logFormat: '[%level] %msg%n'
"my-log-2":
level: DEBUG
additive: false
appenders:
- type: file
currentLogFilename: /home/artur/var/log/test2.log
archivedLogFilenamePattern: /home/artur/var/log/test2.log%d.log.gz
archivedFileCount: 5
HINWEIS: Sie können Registerkarten in der Konfiguration nicht verwenden.
Diese Konfiguration erstellt 2 Logger. Die erste heißt "my-log-1", die zweite heißt "my-log-2".
Sie können nun diese Logger in Ihrer Java-Klasse, zum Beispiel in meiner Anwendung erstellen:
public class Application extends io.dropwizard.Application<Configuration>{
private static final Logger log = Logger.getLogger("my-log-1");
private static final Logger log2 = Logger.getLogger("my-log-2");
@Override
public void run(Configuration configuration, Environment environment) throws Exception {
log.info("Test1"); // writes to first file
log2.info("Test2"); // logs to seconds file
}
public static void main(String[] args) throws Exception {
new Application().run("server", "/home/artur/dev/repo/sandbox/src/main/resources/config/test.yaml");
}
}
Hinweis die beiden Holzfäller und ihre Schöpfung am Anfang der Datei.
Sie können sie jetzt wie jeden Logger verwenden. Fügen Sie Ihren Zustand und melden Sie sich weg:
int random = new Random().nextInt();
if(random % 2 == 0) {
log.info("Test1"); // writes to first file
} else {
log2.info("Test2"); // logs to seconds file
}
Ich hoffe, dass Ihre Frage beantwortet,
Dank,
Artur
Dank! Das funktioniert auch gut für mich. Könnten Sie bitte eine weitere Zeile zum YAML hinzufügen, um das Protokollmuster auf "% m% n" zu setzen? – pMan