log4j 相关问题

log4j是一种流行的基于Java的日志记录实用程序。它是Apache Software Foundation的一个项目,并根据Apache软件许可证2.0版获得许可

如何让 Hibernate 绑定参数值显示在 Junit 测试中?

我正在使用 Maven 3.0.3、SPring 3.1.1.RELEASE、Hibernate 4.1.0.Final 和 log4j 1.2.15。在我的 Maven 项目中,我在 src/test/resources 中有这个 log4j.xml 文件 我正在使用 Maven 3.0.3、SPring 3.1.1.RELEASE、Hibernate 4.1.0.Final 和 log4j 1.2.15。在我的 Maven 项目中,我在 src/test/resources 中有这个 log4j.xml 文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> <appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%p]: %c - %m%n" /> </layout> </appender> <logger name="org.mainco.subco"> <level value="debug" /> </logger> <logger name="log4j.logger.org.hibernate.SQL"> <level value="DEBUG" /> </logger> <logger name="log4j.logger.org.hibernate.type"> <level value="TRACE" /> </logger> <root> <priority value ="info" /> <appender-ref ref="consoleAppender"/> </root> </log4j:configuration> 我的数据源在我的测试应用程序上下文中的配置如下: <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${test.mysql.dataSource.driverClassName}" /> <property name="url" value="${test.mysql.dataSource.url}" /> <property name="username" value="${test.mysql.db.user}" /> <property name="password" value="${test.mysql.db.password}" /> </bean> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="packagesToScan" value="org.mainco.subco" /> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/> </property> <property name="dataSource" ref="dataSource"/> <property name="jpaPropertyMap" ref="jpaPropertyMap" /> </bean> <util:map id="jpaPropertyMap"> <entry key="hibernate.show_sql" value="true" /> <entry key="dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" /> <entry key="hibernate.cache.region.factory_class" value="org.hibernate.cache.ehcache.EhCacheRegionFactory"/> <entry key="hibernate.cache.provider_class" value="org.hibernate.cache.EhCacheProvider"/> <entry key="hibernate.cache.use_second_level_cache" value="true" /> <entry key="hibernate.cache.use_query_cache" value="false" /> <entry key="hibernate.generate_statistics" value="true" /> </util:map> 但是,当我运行 JUnit 测试时,虽然显示了 SQL,但绑定到 SQL 的参数却没有显示。如何更改上述任何内容以使绑定参数通过 System.out (或在控制台上)显示? - 戴夫 由于您使用的是 log4j.xml,因此记录器配置应该是 <logger name="org.hibernate.type"> 不是 <logger name="log4j.logger.org.hibernate.type"> 后者是log4j.properties风格 ### Hibernate logging configuration ### ### Log everything (a lot of information, but very useful for troubleshooting) ### #log4j.logger.org.hibernate=info ### Log HQL and SQL ASTs during query parsing ### log4j.logger.org.hibernate.hql.ast.AST=DEBUG, SQL_APPENDER log4j.additivity.org.hibernate.hql.ast.AST=false ### log just the SQL log4j.logger.org.hibernate.SQL=DEBUG, SQL_APPENDER log4j.additivity.org.hibernate.SQL=false ### log JDBC bind parameters. Very userfull, when debug parameterized queries ### log4j.logger.org.hibernate.type=TRACE, SQL_APPENDER log4j.additivity.org.hibernate.type=false ### log schema export/update ### #log4j.logger.org.hibernate.tool.hbm2ddl=info ### log HQL parse trees #log4j.logger.org.hibernate.hql=debug ### log cache activity ### #log4j.logger.org.hibernate.cache=info ### log transaction activity #log4j.logger.org.hibernate.transaction=debug ### Log all JDBC resource acquisition #log4j.logger.org.hibernate.jdbc=debug 就我而言,使用 hibernate-core-6.2.2,我必须将此行添加到 application.properties 文件中: logging.level.org.hibernate.orm.jdbc.bind = trace 因此要在跟踪模式下设置的包将是“org.hibernate.orm.jdbc.bind”。 因为 hibernate-core 中记录查询参数的 BasicBinder 类正在获取该属性的值: public final void bind(PreparedStatement st, J value, int index, WrapperOptions options) throws SQLException { if ( value == null ) { if ( JdbcBindingLogging.TRACE_ENABLED ) { ... ...

回答 3 投票 0

如何禁用Kafka内部日志?

我想禁用我没有写的Kafka内部日志。 下面的代码是我的基本卡夫卡生产者代码。 包me.sclee.kafka.basic.生产者; 导入 org.apache.kafka.clients. Producer.KafkaProd...

回答 2 投票 0

为什么log4j过滤器在appender中不起作用

我创建了一个自定义过滤器,如下所示: @Plugin(name = "EmptyMessageFilter", 类别 = Node.CATEGORY, elementType = Filter.ELEMENT_TYPE, printObject = true) 公开课

回答 1 投票 0

如何从 log4j 堆栈跟踪中过滤某些行?

我想使用 log4j 从堆栈跟踪中过滤掉某些行(例如 net.sf.cglib.* 和 org.springframework.*)。可以用log4j来配置吗? 在 Eclipse 中,junit 插件允许你...

回答 2 投票 0

log4j RollingFileAppender 创建的日志文件的权限

RollingFileAppender 创建的文件的权限是如何确定的? 我最近更改了一个守护进程,我必须以非 root 用户身份运行,并且现在正在使用权限创建文件...

回答 5 投票 0

按大小和时间滚动日志

我使用 log4j 1.2.16 的 RollingFileAppender,它会在日志文件达到一定大小时滚动日志文件。现在我想每天滚动日志文件,并在日志文件达到一定大小时滚动。这样就会有一个...

回答 4 投票 0

如何在 Log4j 中将 SizeBasedTriggeringPolicy 与 TimeBasedRollingPolicy 结合使用?

嗨,我正在使用 Log4j 进行日志记录。以下是我的配置。 嗨,我正在使用 Log4j 进行日志记录。以下是我的配置。 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration debug="true" xmlns:log4j='http://jakarta.apache.org/log4j/'> <appender name="FileAppender_Comp3" class="org.apache.log4j.rolling.RollingFileAppender"> <rollingPolicy name="file" class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> <param name="FileNamePattern" value="log/Comp3_%d{dd-MM-yyyy HH-mm-ss}.log" /> </rollingPolicy> <triggeringPolicy class="org.apache.log4j.rolling.SizeBasedTriggeringPolicy"> <param name="MaxFileSize" value="3kb"/> </triggeringPolicy> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %5p [%t] %c (%F:%L) - %m%n"/> </layout> </appender> 但是当我运行文件时,它抛出以下错误。 log4j:WARN Failed to set property [maxFileSize] to value "3kb". 我该如何解决这个问题。请帮助我。 如果您使用Log4j 2,您可以以 KB 或 MB 为单位指定大小。 相关 XML 下面。 <Policies> <!-- Starts a new log on tomcat start --> <OnStartupTriggeringPolicy /> <!-- Starts a new file when size reaches threshold --> <SizeBasedTriggeringPolicy size="10 MB" /> <!-- causes a rollover once the date/time pattern no longer applies to the active file --> <TimeBasedTriggeringPolicy /> </Policies 请参阅 https://logging.apache.org/log4j/2.x/manual/appenders.html 了解更多详细信息。 根据文档,MaxFileSize 必须是长值。请查看 https://logging.apache.org/log4j/extras/apidocs/org/apache/log4j/rolling/SizeBasedTriggeringPolicy.html 因此,在本例中该值应为 3072,而不是 3kb。 刚好遇到这个问题,我想我应该分享解决方案: 将 MaxFileSize 参数设置为以字节为单位的值,因此对于您的示例,您可以将其设置为 <param name="MaxFileSize" value="3072"/> Here是一个类似的问题,其中确认了该解决方案。 有关如何指定 log4j2 大小的更多详细信息: <Policies> <SizeBasedTriggeringPolicy size="10 MB"/> </Policies> 如果查看文件大小解析的源代码,用于解析该值的正则表达式如下: /** * Pattern for string parsing. */ private static final Pattern VALUE_PATTERN = Pattern.compile("([0-9]+([.,][0-9]+)?)\\s*(|K|M|G|T)B?", Pattern.CASE_INSENSITIVE); 我没有在文档中的任何地方看到过这一点,但基本上您可以指定一个数字(然后它将表示总字节数),或者使用 KB、MB、GB、TB 来指定测量单位。您还可以使用小数,并在数字和单位之间留有空格。单位不区分大小写,因此应该可以指定 kb 或 KB。 除非您将“%i”添加到 FileNamePattern,否则基于大小的触发器将不起作用。否则,文件名不会更改,因此基于大小的触发器不会导致滚动。 (除了已经提到的 MaxFileSize 是一个没有单位的长“字节”值) 一个很好的来源:https://www.baeldung.com/java-logging-rolling-file-appenders#5-rolling-based-on-size-and-time

回答 5 投票 0

方法 getLogger() 不再是 log4j2 中 Logger 的成员?

我将 log4j-api-2.0.0.jar 和 log4j-core-2.0.2.jar 导入到我的构建路径中。但不知何故,以下代码失败了: 导入 org.apache.logging.log4j.core.Logger; 公共类TheClass { ...

回答 8 投票 0

HikariConfig DEBUG 消息 log4j

很长一段时间,我在控制台中看到此消息 15:58:57.622 [主要] 调试 com.zaxxer.hikari.HikariConfig - ScraperPool - 配置: 15:58:57.627 [主要] 调试 com.zaxxer.hikari.HikariC...

回答 2 投票 0

当 SLF4J 位于 Maven pom.xml 文件中时,为什么会出现“No SLF4J”provider found 错误?

我目前在尝试运行 Spring Java 程序时遇到以下错误。 SLF4J:未找到 SLF4J 提供程序。 SLF4J:默认为无操作(NOP)记录器实现 SLF4J:参见http...

回答 2 投票 0

Log4j 未使用最新版本 log4j-2.17.2 进行滚动

我有一个 log4j 配置,旨在每天滚动一次文件。它在 log4j-2.17.0 和 2.17.1 上运行良好。当我更新到最新版本2.17.2时,每日日志停止滚动...

回答 2 投票 0

如何检查带有Reload4J的SLF4J是否已初始化?

我们正在从普通 Log4J(带有 reload4j)切换到使用 SLF4J。在一段代码中,我们检查日志框架是否已初始化。该检查背后的目标是回退到 pri...

回答 1 投票 0

在 Windows 上重命名 Kafka 日志文件时出现 log4J(1.2.17 版本)问题

我在Windows平台上运行Kafka 2.8.0版本,该平台又使用log4J版本1.2.17。我面临下面的 log4j:ERROR Failed to rename 由 Log4j 在 Zookeeper 和 Kafka 服务器上引起的问题。

回答 1 投票 0

如何访问 log4j.properties 文件中的应用程序参数?

我正在开发一个遗留项目,该项目使用 log4j.properties 文件进行日志记录配置。在属性文件中,我尝试访问以下系统变量(或应用程序参数)...

回答 1 投票 0

使用 Json 模板布局 log4j2 在 json 日志中写入序列号时处理异常堆栈跟踪

我正在使用 json 模板布局通过 kinesis firehose 和 firelens 将我的 ecs 服务的 json 日志写入到 s3。 以下是我正在使用的 json 模板布局的配置 - { ”

回答 1 投票 0

log4j2 MDC 数据未为某些记录器打印

通过 log4j-1.2-api 桥切换到 log4j2 后,我注意到某些日志行中丢失了 MDC 数据。这些行来自同一类中的单独记录器。令人费解的是...

回答 1 投票 0

log4j.properties 文件放在哪里

我是 log4j 的新手! 我正在使用 IntelliJ Idea。 我正在 Jboss 7.1.1 Final 上部署 EAR 应用程序。 我的 EAR 应用程序包含 EJB 和 WAR 包。 所以问题是 - 将 log4j.properties 或 log4j.xml 放在哪里? ...

回答 4 投票 0

限制 Log4J 中的消息长度

我正在开发一个使用 Log4J 进行日志记录的应用程序。有时,应用程序会创建非常长的日志消息(> 10000 个字符)。当日志为

回答 3 投票 0

检测 gradle 传递依赖项中是否存在 Apache Log4j 漏洞

log4j 最近存在一个漏洞 https://nvd.nist.gov/vuln/detail/CVE-2021-44228,其严重程度得分为 10 如何检查 gradle 中是否存在 Log4j 易受攻击的版本,以便它

回答 2 投票 0

我的 Spring Boot 应用程序中未使用 log4j2.xml 文件

我有一个小型 Spring Boot 应用程序并尝试使用 log4j2。 这是我所做的: 这是我的 build.gradle 配置.all { 排除组:'org.springframework.boot',模块:'spring-boot-

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.