log4j 相关问题

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

如何使用 Java 在日志文件中写入调用者位置信息,而不影响性能?

如何使用 Java 和 log4j 在日志文件中写入调用者位置信息(Java 源文件和行),而不影响性能? log4j允许你在日志文件中写入这样的信息...

回答 3 投票 0

相对路径FileNotFoundException

我在项目上创建了两个不同的java项目,依赖于其他项目 就像 A 项目和 B 项目 A 项目有日志文件夹,在 log4j.xml 中我给出了日志文件的相对路径 现在我是

回答 2 投票 0

log4j:显示方法名称的最快方法?

在我的日志消息中,我需要插入生成消息的方法的名称。我查看了 Log4J 文档以及“M”和“l”转换字符,它们也有类似“WA...

回答 4 投票 0

强制slf4j使用logback

有没有办法强制 slf4j 使用特定的日志记录提供程序(在我的例子中是 logback)?正如他们的文档中所示: 在类路径上发现多个绑定 SLF4J API 旨在与一个绑定...

回答 3 投票 0

如何仅为java spring boot项目中的某些特定日志消息添加额外的字符串或键/值对

在我的 Spring Boot 应用程序中,我们需要仅为某些特定的日志消息添加额外的标签(键/值对),以突出显示这些是一些特殊用途的日志,而不是其他日志。 项目日志...

回答 2 投票 0

Spring jdbcTemplate 卡在获取 JDBC 连接

我遇到了 spring jdbcTemplate 的问题。它曾经工作正常,但现在它不返回任何值,也不返回错误消息。我的表大小变得相当大,大约有 3500 万条记录

回答 1 投票 0

发现错误:未找到 SLF4J 提供程序。和默认无操作(NOP)记录器实现

我的日志文件未生成我在启动我的 Spring Boot 应用程序时遇到上述错误。请帮我解决。 org.springframework.boot 我的日志文件未生成我在启动我的 Spring Boot 应用程序时遇到上述错误。请帮我解决。 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.1.3</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.4</version> </dependency> <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>com.squareup.okio</groupId> <artifactId>okio</artifactId> <version>3.5.0</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> </dependency> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.2</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>${servlet-api.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>${jstl.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!-- <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2.1-b03</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20230227</version> </dependency> <!-- <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency> --> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.2</version> </dependency> <!-- <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-text</artifactId> <version>1.10.0</version> </dependency> <!-- ADDED --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.11.0</version> </dependency> <!-- ADDED --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <scope>runtime</scope> <version>1.5</version> </dependency> <dependency> <groupId>org.onosproject</groupId> <artifactId>jnc</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.15.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.15.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> <exclusions> <exclusion> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jdbc</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.snmp4j</groupId> <artifactId>snmp4j</artifactId> <version>2.5.11</version> <exclusions> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.influxdb</groupId> <artifactId>influxdb-java</artifactId> <version>2.22</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.13</version> </dependency> <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-client</artifactId> </dependency> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-multipart</artifactId> </dependency> <dependency> <groupId>org.glassfish.jersey.inject</groupId> <artifactId>jersey-hk2</artifactId> </dependency> <!-- <dependency> <groupId>org.glassfish.jersey.ext</groupId> <artifactId>jersey-spring5</artifactId> <version>2.35</version> </dependency> <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-common</artifactId> <version>2.35</version> </dependency> --> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>32.1.1-jre</version> </dependency> <dependency> <groupId>com.github.seancfoley</groupId> <artifactId>ipaddress</artifactId> <version>5.3.3</version> </dependency> <dependency> <groupId>com.snmp4j.smi</groupId> <artifactId>snmp4j-smi-pro</artifactId> <version>1.9.5</version> <scope>system</scope> <systemPath>${project.basedir}/lib/snmp4j-smi-pro-1.9.5.jar</systemPath> </dependency> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.5</version> </dependency> <!-- spring-kafka --> <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>2.5.1</version> </dependency> <dependency> <groupId>org.xerial.snappy</groupId> <artifactId>snappy-java</artifactId> <version>1.1.10.1</version> </dependency> </dependencies> 我使用的是 Spring Boot 3.1.3。 log4j 的所有依赖项均已添加 但我仍然面临这个问题。尽管我尝试添加 log4j-sl4j -impl 依赖项来将 sl4j 与 log4j2 绑定。 CLI PRINTS WHEN STARTED MY APPLICATION SLF4J: No SLF4J providers were found. SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details. Sep 26, 2023 7:39:23 AM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["https-jsse-nio-127.0.0.1-9005"] Sep 26, 2023 7:39:23 AM org.apache.catalina.core.StandardService startInternal INFO: Starting service [Tomcat] Sep 26, 2023 7:39:23 AM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet engine: [Apache Tomcat/10.1.12] ^C D:\consolelog\cmsnfv\cms_service\OamManager\target>MLog initialization issue: slf4j found no binding or threatened to use its (dangerously silent) NOPLogger. We consider the slf4j library not found. 尝试不排除 Spring Boot 日志记录,它具有实际的日志记录实现。只需删除以下行: <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> 正如这里所解释的那样 SLF4J只是一个Facade,你的类路径上需要一个实际的实现库

回答 1 投票 0

Maven命令mvn javadoc:jar下载log4j-1.2.12

执行Maven命令mvn javadoc:jar时,会下载log4j-1.2.12.jar,其中包含漏洞。范围内的项目对 log4j 没有任何依赖,我们也没有插件

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

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