我有一个部署在JBoss中的spring boot+Hibernate+Log4j的web应用程序。如果我们在application.properties中使用“spring.jpa.show-sql=true”,那么所有的hibernate sql查询都将记录在server.log中。根据Hibernate Log4j指令,我们需要将该属性变为false,以便按照Log4j配置将sql语句记录在单独的日志文件中。如果我们将其变为false,那么sql语句也不会记录在单独的日志文件中。除hibernate日志外,所有其他与应用程序相关的日志都记录在单独的日志文件中。请帮助解决此问题。
Below is the entry in application.properties file.
spring.jpa.show-sql = false
spring.jpa.open-in-view=false
spring.datasource.ucm.default-auto-commit=false
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
spring.jpa.properties.hibernate.id.new_generator_mappings=false
spring.jackson.serialization.fail-on-empty-beans=false
# SQL statements and parameters
log4j.logger.org.hibernate.SQL=debug
log4j.logger.org.hibernate.type.descriptor.sql=trace
<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="30">
<Properties>
<Property name="LOG_PATTERN">%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %p %m%n
</Property>
<Property name="APP_LOG_ROOT">c:/log/VendorPortal</Property>
</Properties>
<Appenders>
<Console name="console" target="SYSTEM_OUT" follow="false">
<PatternLayout pattern="${LOG_PATTERN}" />
</Console>
<!-- File Appender -->
<RollingFile name="RollingFile"
fileName="c:/log/vendorportal.log"
filePattern="c:/log/vendorportal-%d{MM-dd-yyyy}.log"
ignoreExceptions="false">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="100 MB" />
</Policies>
</RollingFile>
<Console name="STDOUT" target="SYSTEM_OUT"
ignoreExceptions="false">
<PatternLayout pattern="%m%n" />
</Console>
</Appenders>
<Loggers>
<Logger name="org.springframework" additivity="false"
level="error">
<AppenderRef ref="RollingFile" />
</Logger>
<Logger name="org.hibernate" level="info" additivity="false">
<AppenderRef ref="RollingFile" />
</Logger>
<Logger name="org.hibernate.SQL" level="DEBUG"
additivity="false">
<AppenderRef ref="RollingFile" />
</Logger>
<Logger name="org.hibernate.type.descriptor.sql" level="TRACE"
additivity="false">
<AppenderRef ref="RollingFile" />
</Logger>
<Root level="error">
<AppenderRef ref="console" />
<AppenderRef ref="RollingFile" />
</Root>
</Loggers>
</Configuration>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
您需要在应用程序中放置Log4j配置文件。然后在其中插入Logger标记:
<Configuration status="WARN" strict="true">
<Properties>
<Property name="filename">logfile.log</Property>
</Properties>
<Appenders>
<Appender type="Console" name="Console" target="SYSTEM_OUT">
<Layout type="PatternLayout">
<Pattern>%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</Pattern>
</Layout>
</Appender>
<Appender type="File" name="FileAppender" fileName="${filename}">
<Layout type="PatternLayout">
<Pattern>%d %p %C{1.} [%t] %m%n</Pattern>
</Layout>
</Appender>
</Appenders>
<Loggers>
<Logger name="org.hibernate.SQL" level="debug" additivity="false">
<AppenderRef ref="Console"/>
</Logger>
<Logger name="org.hibernate.type.descriptor.sql" level="trace" additivity="false">
<AppenderRef ref="Console"/>
</Logger>..........
......
....
雅阿里
我们使用logback进行日志记录,并且在类路径中有以下JAR JCL-over-SLF4J-1.7.7.jar Logback-Classic-1.1.3.jar Logback-Core-1.1.3.jar SLF4J-API-1.7.7.jar Janino-2.7.8.jar 现在,当我部署我的应用程序时,我确实在application.xxx.log文件中看到了来自spring框架的日志
嗯,这个例子看起来很不完整,因为它从来没有提到关键字。通过查看源代码,我看到了一个示例(测试?)它在log4j.xml中使用了,但对如何使用或调试实际的记录器没有太多解释。 关于如何实际使用/实现ApplicationInsightsAppender for Log4J,有没有人有任何指示? 以下是github https://github.com/microsoft/applicationins
本文向大家介绍Python 语言在日志记录中的应用,包括了Python 语言在日志记录中的应用的使用技巧和注意事项,需要的朋友参考一下 示例 配置内置logging功能时,常见的模式是使用__name__当前模块的来创建记录器: 这意味着模块的标准名称将出现在日志中,从而更容易查看消息的来源。
本文向大家介绍在Spring Boot中如何使用log4j记录日志,包括了在Spring Boot中如何使用log4j记录日志的使用技巧和注意事项,需要的朋友参考一下 前言 Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J, Log4J2和Logback。每种Logger都可以通过配置
我正在将我的应用程序从JBoss 6 AS迁移到Wildfly 8.2.0 AS。我可以实现按预期创建应用程序日志,但需要独立/日志/服务器。日志文件中也充满了应用程序日志。我正在使用独立的完整ha。xml配置。任何人都可以建议一个选项,禁止将应用程序日志填充到服务器中。日志 以下部分摘自standalone-full-ha.xml: