【问题标题】:Logging Hibernate in spring boot在 Spring Boot 中记录 Hibernate
【发布时间】: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


【解决方案1】:

这比我预期的要容易得多。 Hibernate 记录器需要指定记录级别并创建记录器以使用“org.hibernate”

【讨论】:

    猜你喜欢
    • 2014-09-22
    • 2020-02-27
    • 2015-11-25
    • 2020-06-30
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    • 2017-11-01
    相关资源
    最近更新 更多