标签: log4j2

使用Console和File appender的非常简单的log4j2 XML配置文件

我想要一个非常简单的XML配置文件,其中包含一个控制台和一个使用log4j2的文件追加器.

(Apache网站给我留下了很多信息.)

xml console appender fileappender log4j2

210
推荐指数
3
解决办法
14万
查看次数

是否值得将slf4j与log4j2一起使用

我无法决定是否使用slf4j与log4j2.基于在线帖子,看起来不会有任何性能影响,但它确实是必需的.

这些点也有利于log4j2:

  • SLF4J强制您的应用程序记录字符串.如果要记录文本,Log4j 2 API支持记录任何CharSequence,但也支持按原样记录任何Object.
  • Log4j 2 API支持记录Message对象,Java 8 lambda表达式和无垃圾日志记录(它避免了创建vararg数组并避免在记录CharSequence对象时创建字符串).

java logging log4j slf4j log4j2

99
推荐指数
2
解决办法
4万
查看次数

以编程方式更改Log4j2中的日志级别

我有兴趣以编程方式更改Log4j2中的日志级别.我试着查看他们的配置文档,但似乎没有任何东西.我也试着查看包裹:org.apache.logging.log4j.core.config但是那里的任何东西看起来都没有帮助.

java log4j2

95
推荐指数
7
解决办法
5万
查看次数

Log4j2配置 - 找不到log4j2配置文件

最近我决定学习如何使用log4j2记录器.我下载了所需的jar文件,创建了库,xml配置文件,并尝试使用它.不幸的是我在控制台(Eclipse)中得到了这个声明:

ERROR StatusLogger No log4j2 configuration file found. Using default configuration:       logging only errors to the console.
Run Code Online (Sandbox Code Playgroud)

这是我的测试类代码:

package log4j.test;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class Log4jTest
{
    static final Logger logger = LogManager.getLogger(Logger.class.getName());

    public static void main(String[] args) {    
        logger.trace("trace");
        logger.debug("debug");
        logger.info("info");
        logger.warn("warn");
        logger.error("error");
        logger.fatal("fatal");
    }
}
Run Code Online (Sandbox Code Playgroud)

和我的xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration package="log4j.test" 
               status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="log4j.test.Log4jTest" level="trace">
            <AppenderRef ref="Console"/>
        </Logger>
        <Root level="trace">
            <AppenderRef ref="Console"/>
        </Root> …
Run Code Online (Sandbox Code Playgroud)

java logging log4j2

85
推荐指数
3
解决办法
15万
查看次数

"状态"在Log4j2配置中意味着什么?

我刚刚完成了log4j2.xml配置文件的调整,发现了一些我不太懂的东西.那是什么<Configuration status="SOME_STATUS_HERE">

几乎在这里的所有示例中: 来自Apache的http://logging.apache.org/log4j/2.x/manual/configuration.html人员将状态添加到配置中.

例如,这是第一个:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN"> <!--status="WARN" - what is this???--> 

 <Appenders>
  <Console name="Console" target="SYSTEM_OUT">
   <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
  </Console>
 </Appenders>

 <Loggers>
  <Root level="error">
   <AppenderRef ref="Console"/>
  </Root>
 </Loggers>

</Configuration>
Run Code Online (Sandbox Code Playgroud)

java configuration logging log4j log4j2

62
推荐指数
3
解决办法
2万
查看次数

Log4j 漏洞 - Log4j 1.2.17 是否容易受到攻击(无法在源代码中找到任何 JNDI 代码)?

关于已确定的Log4j JNDI远程代码执行漏洞CVE-2021-44228 -(另请参阅参考资料) - 我想知道Log4j-v1.2是否也受到影响,但我从源代码审查中得到的最接近的是JMS -附加程序

\n

问题是,虽然互联网上的帖子表明 Log4j 1.2 也存在漏洞,但我无法找到它的相关源代码。

\n

我是否遗漏了其他人已经发现的东西?

\n

Log4j 1.2 似乎在套接字服务器类中存在漏洞,但我的理解是,它需要首先启用才能适用,因此与识别的 JNDI 查找漏洞不同,它不是被动威胁似乎。

\n

我的理解 - Log4j v1.2 - 不容易受到 jndi-remote-code 执行错误的影响是否正确?

\n

参考

\n\n

Cloudflare 的这篇博文也表明了与AKX相同的观点......它是从 Log4j 2 引入的!

\n

更新 #1 - …

java security exploit log4j log4j2

62
推荐指数
2
解决办法
6万
查看次数

找不到log4j2配置文件.使用默认配置:仅将错误记录到控制台

$ java -Dlog4j.configuration=file:///path/to/your/log4j2.xml -jar /path/to/your/jar_file.jar
Run Code Online (Sandbox Code Playgroud)

写到控制台,你得到

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
Run Code Online (Sandbox Code Playgroud)

但是,它看起来像配置文件已找到并且无法解析:

    log4j:WARN Continuable parsing error 2 and column 31
    log4j:WARN Document root element "Configuration", must match DOCTYPE root "null".
    log4j:WARN Continuable parsing error 2 and column 31
    log4j:WARN Document is invalid: no grammar found.
    log4j:ERROR DOM element is - not a <log4j:configuration> element.
    log4j:WARN No appenders could be found for logger (kafka.utils.VerifiableProperties).
    log4j:WARN Please initialize the log4j system …
Run Code Online (Sandbox Code Playgroud)

java log4j log4j2

52
推荐指数
7
解决办法
19万
查看次数

在 Log4j XML 配置文件中放置 formatMsgNoLookups 的位置

我使用 XML 文件配置 Log4j。我应该在哪里添加formatMsgNoLookups=true

<?xml version="1.0" encoding="UTF-8"?>
<!--  Upload files compare config -->
<configuration status="OFF">
  <appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss} %p - %msg%n"/>
    </Console>

    <!-- http://logging.apache.org/log4j/2.x/manual/appenders.html#RollingFileAppender -->
    <RollingFile name="File" fileName="logs/MyLogFile.log"
                          filePattern="logs/MyLogFile-%d{yyyy-MM-dd}.log"
                 ignoreExceptions="false">
      <PatternLayout>
        <Pattern>%d %p %c{1.} %m%n</Pattern>
      </PatternLayout>
    </RollingFile>
  </appenders>
  <Loggers>
    <Root level="INFO">
      <AppenderRef ref="File"/>
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</configuration>
Run Code Online (Sandbox Code Playgroud)

java log4j2

51
推荐指数
3
解决办法
7万
查看次数

如何在log4j2中创建自定义Appender?

正如在这个链接中所讨论的:如何在log4j中创建自己的Appender?

为了在log4j 1.x中创建自定义appender,我们必须扩展AppenderSkeleton类并实现其append方法.

类似地我们如何在log4j2中创建自定义appender,因为我们没有扩展AppenderSkelton类,所有其他appender扩展AppenderBase类.

java logging log4j log4j2

48
推荐指数
2
解决办法
4万
查看次数

log4j2为FileAppender指定tomcat home目录的相对路径

我正在尝试为我的本地运行的tomcat服务器配置log4j2.我无法将日志传递到与tomcat安装相关的位置.

如果我指定一个绝对路径它的工作原理.如果我使用相对路径,它输出到的位置System.getProperty("user.dir").

但是,当我尝试使用它${catalina.home}${catalina.base}它不起作用.如果我在启动时输出这两个系统属性,则会定义它们并指向正确的位置.

也,

  • Tomcat 7.0.26
  • servlet 2.5
  • log4j2.0 beta 8
  • 我们正在使用slf4j和log4j2.
  • 我通过环境变量设置所有记录器是异步的-DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector.

我的感觉是Tomcat在处理log4j2.xml时可能没有完全初始化?任何想法将不胜感激!

这是我的log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="debug" name="LoggingConfig"> 
  <appenders>
    <FastFile name="ALog" fileName="${catalina.home}/logs/test.log" immediateFlush="true" append="true">
      <PatternLayout>
        <pattern>%d %p %c{1.} [%t] %m%n</pattern>
      </PatternLayout>
    </FastFile>
  </appenders>

  <loggers>
    <logger name="a.namespace.dir" level="info" additivity="false">
      <appender-ref ref="ALog"/>
    </logger>

    <root level="info">
      <appender-ref ref="ALog"/>
    </root>
  </loggers>

</configuration>
Run Code Online (Sandbox Code Playgroud)

来自catalina.out

2013-07-31 11:22:00,313 DEBUG Calling createAppender on class org.apache.logging.log4j.core.appender.FastFileAppender for element FastFile with params(fileName="${catalina.home}/logs/test.log", append="true", name="ALog", immediateFlush="true", suppressExceptions="null", PatternLayout(%d …
Run Code Online (Sandbox Code Playgroud)

logging tomcat fileappender log4j2

44
推荐指数
1
解决办法
3万
查看次数