log4j 相关问题

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

Cytoscape 使用 Log4j 吗?

抱歉,如果我在其他地方错过了这一点,但是有人可以告诉我 Cytoscape 是否使用 Log4j 吗? 我在 macOS Big Sur v11.6 上安装了 Cytoscape v3.9.0,并安装了 openjdk v11.0.7。只是想知道我是否...

回答 1 投票 0

Log4j2.xml 中的 RegexFilter 未按预期过滤日志

我似乎无法让 RegexFilter 工作。我已设置 log4j2.xml 文件如下: 我似乎无法让 RegexFilter 工作。我已按如下方式设置 log4j2.xml 文件: <Console name="prodOutput" target="SYSTEM_OUT"> <PatternLayout pattern="[%d] [Org Utility] -- [ITEM1=%X{ITEM1} ITEM2=%X{ITEM2} ITEM3=%X{ITEM3} USERID=%X{USERID} ENV=%X{ENV}]- [%t] %-5p %c %x - %m%n"/> <Filters> <RegexFilter regex=".*ENV=local.*" useRawMsg="false" onMatch="DENY" onMismatch="NEUTRAL"/> </Filters> </Console> <Loggers> <!-- switch off log output from these packages --> <Logger name="orgName.package1" level="debug" additivity="false"> <appender-ref ref="prodOutput"/> </Logger> <!-- retain log output for other packages --> <Logger name="orgName" level="trace" additivity="false"> <appender-ref ref="${sys:logger.out.type}"/> </Logger> <Root level="info" additivity="false"> <appender-ref ref="${sys:logger.out.type}"/> </Root> </Loggers> 这是我们的日志输出的示例,但不知何故,此包中的日志orgName.package1没有获取正则表达式,因为我仍然可以在控制台中看到此包中的日志。 [2023-01-03 12:41:56,353] [Org Utility] -- [ITEM1=XX ITEM2=XX ITEM3=XX USERID=@ADMIN ENV=local]- [ForkJoinPool-1-worker-29] DEBUG orgName.executeRule [] ... 因为当我用简单的 .* 替换正则表达式时,包 orgName.package1 的输出不会显示在控制台中。 ENV中ThreadContextMap的值为local,所以我期望日志输出为... ENV=local ...并且确实如此,如控制台中所示。但正则表达式不知何故没有检测到此日志。 是否有我遗漏的设置或配置?或者也许我写错了正则表达式?但我在 regex101.com 上仔细检查了我的正则表达式,并且我编写的测试用例通过了,这是一个样本。 我明白为什么 RegexFilter 不起作用,这是因为我试图在记录器上应用正则表达式而不是消息。 RegexFilter旨在对messages应用正则表达式,即仅使用PatternLayout转换模式在%m中定义的部分,而不是与记录器相关的详细信息(类型、时间、包) ,类名等)。 示例 这是log4j2.xml文件中的模式定义: <PatternLayout pattern="%d{ISO8601} %p %C.%M - %m%n"/> 这是一个示例日志: 2024-03-28T05:40:30,667 INFO com.example.Foo.doSomething - This is a log message 因此,使用 <RegexFilter> 您只能定位 消息,在本例中为: 这是一条日志消息 仅检查这部分是否匹配。 我引用了这个 StackOverflow post,它与我的问题非常相似。 希望这对任何遇到此问题的人都有帮助,干杯!

回答 1 投票 0

在 Log4j 2.x Core 中保留 30 个归档日志文件

我想以这样的方式配置 log4j2.properties 文件,其中我的 swapi.log 条目删除所有以前写入的日志,例如,如果我们要删除最多 30 个条目的日志条目,一旦达到...

回答 1 投票 0

Log4j 2 保留 30 个归档日志文件

我想以这样的方式配置 log4j2.properties 文件,其中我的 swapi.log 条目删除所有以前写入的日志,例如,如果我们要删除最多 30 个条目的日志条目,一旦达到...

回答 1 投票 0

出现异常 org.apache.logging.slf4j.SLF4JLoggerContext 无法转换为 org.apache.logging.log4j.core.LoggerContext

我的代码使用apache-log4j-2.0.2非常简单: 导入 org.apache.log4j.BasicConfigurator; 导入 org.apache.log4j.Logger; 公共类 Log4jtest { 静态Logger日志=Logger.getLogger(Log4jtest.

回答 3 投票 0

Log4j 未将日志写入文件

提前感谢,我正在尝试使用 log4j 将日志写入文件,我已经尝试了所有 log4j.properties 但没有任何效果。下面是代码。 导入 org.apache.logging.log4j.LogManager; 我...

回答 1 投票 0

如何使用 log4j 自定义附加程序在 HDFS 上创建日志?

概述 我们希望使用 log4j 记录 Spark 作业活动,并将日志文件写入 HDFS。 Java 8、Spark 2.4.6、Scala 2.1.2、Hadoop 3.2.1 我们无法找到本地 apache log4j 附加程序来写入...

回答 1 投票 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

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