Doma2 verwendet die JDBC-Logger-Schnittstelle für die Protokollausgabe, und "UtilLoggingJdbcLogger" wird als Beispiel für seine Implementierung bereitgestellt. Da dieser "UtilLoggingJdbcLogger" JUL ("java.util.logging") für die Protokollausgabe verwendet, kann die Systemeigenschaft "java.util.logging.config.file" für Einstellungen verwendet werden, die sich auf die Protokollausgabe beziehen.
logging.properties
handlers= java.util.logging.ConsoleHandler, java.util.logging.FileHandler
java.util.logging.FileHandler.level = INFO
java.util.logging.FileHandler.pattern = logging_by_propertiesfile.log
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
Wenn Sie beispielsweise die oben genannten "logging.properties" haben und diese auf "UtilLoggingJdbcLogger" setzen möchten, können Sie sie auf "-Djava.util.logging.config.file = \ path \ to \ logging.properties" setzen. ist.
Sie können "UtilLoggingJdbcLogger" auch selbst erweitern, ohne die Systemeigenschaftendatei zu verwenden.
Erstellen Sie zunächst eine Klasse, die "UtilLoggingJdbcLogger" erbt. Zu diesem Zeitpunkt ist die Protokollausgabe für "super.logger" (JUL-Instanz) festgelegt.
MyUtilLoggingJdbcLogger.java
public class MyUtilLoggingJdbcLogger extends UtilLoggingJdbcLogger {
public MyUtilLoggingJdbcLogger() {
try {
Formatter formatter = new SimpleFormatter();
Handler consoleHandler = new ConsoleHandler();
consoleHandler.setFormatter(formatter);
consoleHandler.setLevel(Level.INFO);
Handler fileHandler = new FileHandler("logging_by_class.log");
fileHandler.setFormatter(formatter);
fileHandler.setLevel(Level.INFO);
super.logger.addHandler(consoleHandler);
super.logger.addHandler(fileHandler);
} catch (SecurityException | IOException e) {
e.printStackTrace();
}
}
}
Stellen Sie danach die Verwendung des in der Config-Klasse von Doma2 erstellten "MyUtilLoggingJdbcLogger" ein. Insbesondere überschreibt es einfach die Methode "getJdbcLogger" und gibt die Instanz "MyUtilLoggingJdbcLogger" zurück.
AppConfig.java
@SingletonConfig
public class AppConfig implements Config {
private final JdbcLogger logger;
private AppConfig() {
logger = new MyUtilLoggingJdbcLogger();
}
@Override
public JdbcLogger getJdbcLogger() {
return logger;
}
}
Recommended Posts