log4j 相关问题

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

使用 MyBatis 和 Spring 在项目中记录 SQL 查询

在我的项目中我有 在我的项目中我有 <bean id="ABCSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="ABCDataSource" /> <property name="mapperLocations"> <list> <value>classpath:com/myco/dao/XYZMapper.xml</value> </list> </property> <bean> 和 log4j.logger.java.sql.Connection=debug, stdout, abclog log4j.logger.java.sql.PreparedStatement=debug, stdout, abclog log4j.logger.java.sql=debug, stdout, abclog log4j.logger.org.mybatis=debug, stdout, abclog log4j.logger.org.apache.ibatis=debug, stdout, abclog 当我在日志中运行应用程序时,我没有看到 SQL 查询 想知道我错过了什么 看到这篇文章如何为Mybatis配置log4j来打印我的SQL 建议更改 mybatis 类配置,但不知道如何使用 spring SqlSessionFactoryBean 引用how to configure logback for Mybatis to print my SQL的答案,我不确定这是否完全适合您。它提供了用于日志记录的 Spring 配置。这种方法对我有用。 记录特定 mybatis 映射器设置 DEBUG (TRACE 查看查询参数和结果)记录器级别完全 合格的映射者名称 <logger name="com.mycompany.myapp.mapper.MyMapper" level="DEBUG"/> 您可以记录来自所有映射器的所有 SQL 语句(如果它们位于 和这个一样的包 <logger name="com.mycompany.myapp.mapper" level="DEBUG"/> 如果问题仍然存在,请尝试一下。祝你好运! 您可以通过 mybatis-config.xml 为 Mybatis 添加日志记录。 像这样添加 log4j: mybatis-config.xml <configuration> <settings> ... <setting name="logImpl" value="LOG4J"/> ... </settings> </configuration> 然后在 log4j.properties 中添加您要记录的类: log4j.logger.org.mybatis.example.MyMapper=TRACE SQL 语句在 DEBUG 级别记录,因此将输出设置为 DEBUG: log4j.logger.org.mybatis.example=DEBUG 有关更多详细信息,请参阅文档。 另一个快捷方式是在 application.properties 文件中将 mybatis 映射器的调试级别设置为 true: logging.level.<packageName>.mapper=DEBUG 控制台或日志文件中打印的示例日志: 2020-03-03 09:41:27.057 DEBUG 10495 --- [io-50006-exec-1] c.f.t.d.m.M.countByExample : ==> Preparing: SELECT count(*) FROM MessageRecivers WHERE ((ReciverId = ? and ReadStats = ? and ReciverMessageFolder <> ?)) 2020-03-03 09:41:27.066 DEBUG 10495 --- [io-50006-exec-1] c.f.t.d.m.M.countByExample : ==> Parameters: 58(Long), 0(Short), 1(Short) 2020-03-03 09:41:27.473 DEBUG 10495 --- [io-50006-exec-1] c.f.t.d.m.M.countByExample : <== Total: 1 用最简单的方式配置进行测试并在日志中查看。然后自定义输出(例如文件、级别)。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd" > <log4j:configuration> <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p (%c.java:%L).%M - %m%n"/> </layout> </appender> <root> <priority value="TRACE" /> <appender-ref ref="STDOUT"/> </root> </log4j:configuration> 尝试将所有必要的行添加到您的配置中。 这是应该有效的示例: #configure root logger log4j.rootLogger=ERROR, file, stdout #configure all mybatis mappers logging log4j.logger.com.myco.dao=ERROR #configure your mapper logging log4j.logger.com.myco.dao.XYZMapper=DEBUG #configure appender log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 两种实现方式: 编辑logback.xml: <logger name="mapperPackageName" level="debug"/> 编辑应用程序.属性 logging.level.<mapperPackageName>=DEBUG mapperPackageName是Mapper类所在的包。 您可以通过在 main 方法中或创建连接工厂时的某个地方调用 LogFactory.useStdOutLogging(); [java 配置] 来配置它。

回答 7 投票 0

使用 Log4J 记录 Spring bean 初始化

当我运行我的应用程序时,它会在 bean 初始化时停止,但不显示任何日志条目。所以我不知道发生了什么: Log4j.properties log4j.rootLogger=调试、标准输出、R log4j.appender.

回答 2 投票 0

如何为log4j配置checkstyle

我想禁止这样的代码: 私有静态最终记录器 LOGGER = LogManager.getLogger(...) ... ... LOGGER.info("未找到用户(%s)。", userId); 最好这样做: 洛格...

回答 2 投票 0

Log4j 1.2 Bridge 更新至 2.17.2 RollingFileAppender MaxBackupIndex 问题

我最近使用 log4j 1.2 桥 API 将 log4j 1.2.13 更新到 log4j 2.17.2。 我现有的 RollingFileAppender 配置如下: log4j.appender.app=org.apache.log4j.RollingFileAppender log4j。

回答 1 投票 0

如何在Log4j中启用Logger.debug()

尝试执行以下几行时,仅显示最后两条语句(“这是一些错误”和“这是一些致命错误”),并且不显示前三个语句。我刚刚...

回答 8 投票 0

禁用 /opt/engine.log 中的默认日志记录

我有一个带有许多子框架的 Spring Boot 应用程序。当我启动应用程序时,我默认登录 /opt/engine.log。有没有办法全局禁用此日志记录?

回答 1 投票 0

本机编译 java.lang.NoSuchMethodException:apache-poi 的 org.apache.logging.log4j.message.DefaultFlowMessageFactory.<init>() 异常

我有一个带有 picocli 和 apache-poi 的小型 Java 应用程序: 构建.gradle 插件{ id 'java' id“应用程序” id 'org.graalvm.buildtools.native' 版本 '0.10.1' } 组 = 'com.examp...

回答 1 投票 0

限制某些方法的负载 CommonsRequestLoggingFilter Spring

我正在使用 CommonsRequestLoggingFilter 来记录传入请求的有效负载。但对于一种方法,我不想记录有效负载,因为它包含用户机密数据。我有以下配置...

回答 2 投票 0

Log4j2 (2.1) 自定义插件未被包属性检测到

我已将 log4j2 自定义插件打包到一个单独的 jar 中(仅包含插件类)并将其放入应用程序类路径中。但它没有被检测到。 我用谷歌搜索发现这是一个错误 - “

回答 2 投票 0

slf4j-log4j12 和 log4j-slf4j-impl 之间的区别

在一些使用 slf4j 和 log4j 的项目中,我可以看到类似的依赖关系 编译('org.apache.logging.log4j:log4j-core:版本') 编译('org.apache.logging.log4j:log4j-api:版本') 编译('org.apa...

回答 1 投票 0

警告 StatusConsoleListener 密钥 MDC_KEY 在字符串和堆栈值 MDC 中都使用了

我正在使用 slf4j v2.0.9 和 log4j v2.21.1。 MCD 日志按预期工作,但我还收到以下警告。 警告 StatusConsoleListener 密钥 MDC_KEY 在两个 s...

回答 1 投票 0

引起:java.lang.NoClassDefFoundError:org/apache/log4j/Level

我必须将日志记录功能从log4j-1.2.13升级到log4j-api-2.23.0。 早些时候,我的 WebContent\WEB-INF\lib 文件夹中有以下这些 jar log4j-1.2.13.jar log4j.jar 所以我已经删除了

回答 1 投票 0

如何动态更改SLF4j或Log4J中的日志级别

最近遇到一个Application Loglevel动态变化的情况。应用程序管理员可以从前端将其设置为 INFO/DEBUG/WARN。基于应用程序选择的日志级别

回答 6 投票 0

apache-log4j-extras jar 可以与 apache log4j 2.x 一起使用

apache-log4j-extras jar 可以与 apache log4j 2.x jar 一起使用,还是已弃用? 发现该 jar 的最新更新是在 1.2.17 版本。

回答 1 投票 0

如何在Log4J2中使用service loader服务动态设置日志目录?

我知道在 Log4j2 中您可以使用以下方法动态设置日志目录: System.setProperty('logDirectory', getLogDirectoryDynamically()); 并在 Log4j2 中使用该值

回答 1 投票 0

org.apache.log4j.Category.callAppenders 上的线程被阻塞,但不等待任何锁定

我的Web应用程序(在weblogic上部署)崩溃了,当我检查jstack信息时,我发现大多数线程在org.apache.log4j.spi.RootLogger上被阻止。拥有这个锁的线程也被阻塞...

回答 2 投票 0

滚动文件追加器不起作用,需要帮助理解

我很困惑。 当我安装了 SpringBoot Logback 时,SpringBoot 会轮换日志文件。然而,由于库的兼容性问题,我不得不切换到 log4j。日志记录仍然有效,但是...

回答 1 投票 0

Dockerfile:命令 RUN $SPARK_HOME/jars/log4j-1.2.17.jar 失败且未找到

我正在尝试创建一个Apache Spark docker容器,主要用于自学目的。 所以,我知道(没有足够的细节)但是 log4j1.2.17 jar 存在漏洞问题。 话虽如此,...

回答 1 投票 0

如何使用log4j2删除旧日志

(仅供参考,我已经在网上查了很多文档。我使用的是storm-0.10.0-beta1。Storm中log4j2的配置文件是worker.xml) 现在,我尝试使用log4j2。 我正在寻找方法

回答 3 投票 0

重新编码/解析由log4j2创建的日志,返回LogEvents

我使用 log4j2 FileAppender 创建了日志文件。在不重新创建我自己的解析器的情况下,我试图找到一种方法来使用 log4j2 已有的内容来重新编码 lo...

回答 1 投票 0

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