【发布时间】:2017-11-29 19:04:29
【问题描述】:
请告诉我。我有一个关于 Spring-boot 的项目。我正在尝试在 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;
}
}
我尝试为 Hibernate 创建一个单独的类。并写入另一个文件。文件已创建,但没有任何信息。我在另一个类 Logger log = logCtx.getLogger("org.hibernate.SQL"); 中尝试用户这样的事情;
更新:
最后我想要什么:我想在 java 代码中配置我的应用程序的日志记录。即日志应该写入应用程序和SQL查询的日志中。和
【问题讨论】:
-
您可以启用它的应用程序属性键,以便休眠记录它生成的 SQL 查询。它有“显示 SQL”,但我不记得完全在我的脑海中。
-
@EpicPandaForce 在这种情况下,我需要在没有 application.properties 的情况下配置 Hibernate
标签: java hibernate logging spring-boot