本文将介绍log4j:WARN在web.xml中找不到记录器的附加程序的详细情况,特别是关于log4jlogger找不到的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,
本文将介绍log4j:WARN在web.xml中找不到记录器的附加程序的详细情况,特别是关于log4jlogger 找不到的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于Docker 容器内的 Log4j2 套接字附加程序抛出连接被拒绝、java – SLF4J-Log4j记录器没有记录、Java找不到记录器(log4j)的附加程序?、log4j 2向控制台附加程序添加多种颜色的知识。
本文目录一览:- log4j:WARN在web.xml中找不到记录器的附加程序(log4jlogger 找不到)
- Docker 容器内的 Log4j2 套接字附加程序抛出连接被拒绝
- java – SLF4J-Log4j记录器没有记录
- Java找不到记录器(log4j)的附加程序?
- log4j 2向控制台附加程序添加多种颜色
log4j:WARN在web.xml中找不到记录器的附加程序(log4jlogger 找不到)
我已经将log4jConfigLocation放在web.xml中,但是仍然收到以下警告:
log4j:WARN No appenders could be found for logger ⤦ ⤥ (org.springframework.web.context.ContextLoader).log4j:WARN Please initialize the log4j system properly.
我错过了什么?
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "java.sun.com/dtd/web-app_2_3.dtd"><web-app> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/applicationContext.xml </param-value> </context-param> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/classes/log4j.properties</param-value> </context-param> <listener> <listener-class> org.springframework.web.util.Log4jConfigListener </listener-class> </listener> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <servlet> <servlet-name>suara2</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>suara2</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping></web-app>
答案1
小编典典如果这是整个log4j.properties文件,则看起来你实际上从未创建过记录器。你需要这样的一行:
log4j.rootLogger=debug,A1
Docker 容器内的 Log4j2 套接字附加程序抛出连接被拒绝
如何解决Docker 容器内的 Log4j2 套接字附加程序抛出连接被拒绝?
我有一个在 docker 容器上运行的 springboot 应用程序。在我的应用程序中有一个带有套接字附加程序的 log4j.xml 文件。
defmodule Example do
def merge_sort([]),do: []
def merge_sort([_] = list),do: list
def merge_sort(list) when is_list(list) do
len = length(list)
{a,b} = Enum.split(list,div(len,2))
a = merge_sort(a)
b = merge_sort(b)
merge(a,b,[])
end
defp merge([],acc),do: Enum.reverse(acc) ++ b
defp merge(a,[],do: Enum.reverse(acc) ++ a
defp merge([a_head | a_tail] = a,[b_head | b_tail] = b,acc) do
if a_head <= b_head do
merge(a_tail,[a_head | acc])
else
merge(a,b_tail,[b_head | acc])
end
end
end
在我的主机服务器(Ubuntu 服务器)中,它通过 logstash 列出了端口 5100。主机中“netstat -tulpn”命令的输出如下。
<Socket name="Socket" host="172.17.0.1" port="5100">
<JsonLayout compact="true" eventEol="true" />
</Socket>
但是当 springboot 服务器启动时,它的获取连接被拒绝错误。
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8280 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:5100 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:5001 0.0.0.0:* LISTEN -
我也尝试过“host.docker.internal”,但它不起作用。谁能告诉我这有什么问题吗?
解决方法
正如您从 netstat
输出中看到的,Logstash 仅监听 127.0.0.1:5100
。这意味着它不能从 Docker 内部访问。您必须让它在 172.17.0.1:5100
或 0.0.0.0:5100
上收听。
java – SLF4J-Log4j记录器没有记录
private org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(<TheClass>.class);
(当然,我确保slf4-log4j12-1.6.4.jar JAR在类路径上!)
但每当我去使用记录器时,比如logger.debug(“有趣的事情发生了”);或者logger.error(“发生错误”);我在日志文件中看不到它们的输出.但是,没有异常发生,应用程序(它实际上是部署到Tomcat的WAR)运行正常.
这是项目中包含的log4j.properties文件:
# Set the root logger to DEBUG. log4j.rootLogger=DEBUG # MonitorLog - used to log messages in the Monitor.log file. log4j.appender.MonitorAppender=org.apache.log4j.FileAppender log4j.appender.MonitorAppender.File=${catalina.base}/logs/MyAppMonitor.log log4j.appender.MonitorAppender.layout=org.apache.log4j.PatternLayout log4j.appender.MonitorAppender.layout.ConversionPattern= %-4r [%t] %-5p %c %x - %m%n # Use the MonitorAppender to log all messages. log4j.logger.*=DEBUG,MonitorAppender org.quartz.impl.StdSchedulerFactory=DEBUG,MonitorAppender
这个WAR使用Quartz来完成一些工作,这就是你看到最后一个条目的原因.
当我检查Tomcat的logs /目录时,我看到创建了MyAppMonitor.log,但它没有任何内容(0字节).我已经扫描了所有典型的catalina.out,catalina-和localhost-日志,而且我的日志语句都没有看到日光.
我在想:
>我没有正确配置log4j.properties,或
>我没有正确配置slf4j-log4j,或者
>这是一个类路径问题,也许WAR找不到log4j.properties(虽然我想我会看到错误或警告),或者
>我没有正确使用(API本身)SLF4J,或者
>我从来没有真正创建过一个名为MonitorAppender的东西,所以我想知道这是不是问题;我只是按照我在网上看到的一个例子
任何人都可以找到我要去的地方,或者帮我排除故障吗?提前致谢!
解决方法
log4j.debug=true log4j.rootLogger=DEBUG,CON log4j.appender.CON=org.apache.log4j.ConsoleAppender log4j.appender.CON.layout=org.apache.log4j.PatternLayout log4j.appender.CON.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
对于您问题中的配置文件,根记录器没有附加的appender.而且,行
log4j.logger.*=DEBUG,MonitorAppender
无效,因为不支持“*”.
Java找不到记录器(log4j)的附加程序?
如何解决Java找不到记录器(log4j)的附加程序??
这个log4j指南的简短介绍有些陈旧,但仍然有效。
该指南将为你提供有关如何使用记录器和附加器的信息。
为了让你步入正轨,你可以采用两种简单的方法。
首先是将这一行添加到你的main方法中:
BasicConfigurator.configure();
第二种方法是将这个标准文件log4j.properties(来自上述指南)添加到你的类路径中:
# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1
# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
解决方法
我已经将log4j放到了我的构建路径中,但是在运行应用程序时收到以下消息:
log4j:WARN No appenders could be found for logger (dao.hsqlmanager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
这些警告是什么意思?这里的追加器是什么?
log4j 2向控制台附加程序添加多种颜色
嗨,我刚刚下载并配置了log4j-2。我一直坚持将颜色代码应用于SlowConsole
控制台附加程序。我的控制台附加程序如下所示。
<?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n"/> </Console> <Console name="SlowConsole" target="SYSTEM_OUT"> <PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} %-5level %logger{36}.%M() @%L - %msg%n}{FATAL=red, ERROR=red, WARN=yellow, INFO=black, DEBUG=green, TRACE=blue}"/> </Console> <File name="File" fileName="C:\log\out.txt"> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n" /> </File> </Appenders> <Loggers> <logger name="org.abc.ea.web" level="ALL" additivity="false"> <!--Log4j for the WEB MODULE --> <appender-ref ref="SlowConsole"/> </logger> <logger name="org.abc.ea.ejb" level="ALL" additivity="false"> <!--Log4j for the EJB MODULE --> <appender-ref ref="SlowConsole"/> </logger> <Root level="ERROR"> <AppenderRef ref="Console"/> <AppenderRef ref="File" /> </Root> </Loggers></Configuration>
我有两个问题,
我是log4j的新手,这是编写xml配置文件的正确方法吗?
如何在每个日志级别添加两个颜色代码?
例如:DEBUG = green->将输出浅绿色字体,但是我需要它是dim
和bold
答案1
小编典典我想我找到了解决方案。我下载了log4j2-core-
sources.jar并跟踪了源。您可以如下编写:
<Console name="SlowConsole" target="SYSTEM_OUT"> <PatternLayout disableAnsi="false" pattern="%highlight{%d{HH:mm:ss.SSS} %-5level %logger{36}.%M() @%L - %msg%n}{FATAL=red blink, ERROR=red, WARN=yellow bold, INFO=black, DEBUG=green bold, TRACE=blue}"/></Console>
我认为log4j2
文档及其示例可能需要更新。
关于log4j:WARN在web.xml中找不到记录器的附加程序和log4jlogger 找不到的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Docker 容器内的 Log4j2 套接字附加程序抛出连接被拒绝、java – SLF4J-Log4j记录器没有记录、Java找不到记录器(log4j)的附加程序?、log4j 2向控制台附加程序添加多种颜色的相关信息,请在本站寻找。
本文标签: