0
請告訴我。我有一個Spring引導項目。我試圖在java代碼中配置日誌記錄。問題是我知道如何配置同步日誌記錄應用程序和Hibernate SQL。 這裏記錄應用程序及其工作正常我的配置類:在彈簧啓動時記錄休眠
@Service
public class Slf4j {
@Bean(name = "logger")
public Logger getLogger() {
LoggerContext logCtx = (LoggerContext) LoggerFactory.getILoggerFactory();
Logger log = logCtx.getLogger(Logger.ROOT_LOGGER_NAME);
log.setAdditive(false);
log.setLevel(Level.INFO);
log.addAppender(initConsoleLogger(logCtx));
log.addAppender(initFileLogger(logCtx));
return log;
}
private RollingFileAppender initFileLogger(LoggerContext logCtx) {
PatternLayoutEncoder logEncoder = new PatternLayoutEncoder();
logEncoder.setContext(logCtx);
logEncoder.setPattern("%-12date{YYYY-MM-dd HH:mm:ss.SSS} %-5level - %msg%n");
logEncoder.start();
RollingFileAppender logFileAppender = new RollingFileAppender();
logFileAppender.setContext(logCtx);
logFileAppender.setName("logFile");
logFileAppender.setEncoder(logEncoder);
logFileAppender.setAppend(true);
logFileAppender.setFile("logs/logfile.log");
TimeBasedRollingPolicy logFilePolicy = new TimeBasedRollingPolicy();
logFilePolicy.setContext(logCtx);
logFilePolicy.setParent(logFileAppender);
logFilePolicy.setFileNamePattern("logs/logfile-%d{yyyy-MM-dd_HH}.log");
logFilePolicy.setMaxHistory(7);
logFilePolicy.start();
logFileAppender.setRollingPolicy(logFilePolicy);
logFileAppender.start();
return logFileAppender;
}
private ConsoleAppender initConsoleLogger(LoggerContext logCtx) {
PatternLayoutEncoder logEncoder = new PatternLayoutEncoder();
logEncoder.setContext(logCtx);
logEncoder.setPattern("%-12date{YYYY-MM-dd HH:mm:ss.SSS} %-5level - %msg%n");
logEncoder.start();
ConsoleAppender logConsoleAppender = new ConsoleAppender();
logConsoleAppender.setContext(logCtx);
logConsoleAppender.setName("console");
logConsoleAppender.setEncoder(logEncoder);
logConsoleAppender.start();
return logConsoleAppender;
}
}
我試圖讓一個單獨的類專門爲休眠。並寫入另一個文件。該文件已創建,但沒有信息。我在另一個類中嘗試用戶這樣的事情Logger log = logCtx.getLogger(「org.hibernate.SQL」);
UPDATE:
在我想要的結尾:我想我的配置在Java代碼中應用程序的日誌記錄。也就是說,應將日誌寫入應用程序和SQL查詢的日誌中。和
有一個可以啓用的應用程序屬性鍵,以便hibernate記錄它生成的SQL查詢。它裏面有「顯示SQL」,但我不記得我的頭頂。 – EpicPandaForce
@EpicPandaForce在這種情況下,我需要配置Hibernate而不使用application.properties –