我已经将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.
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
<?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>
Run Code Online (Sandbox Code Playgroud) 我正在尝试了解log4j所以我只是尝试做一些非常简单的事情;
Logger logger = Logger.getLogger("ClientApplicationLog");
logger.info("Logger Test");
Run Code Online (Sandbox Code Playgroud)
但是在我得到这个之后;
log4j:WARN No appenders could be found for logger (ClientApplicationLog).
log4j:WARN Please initialize the log4j system properly.
Run Code Online (Sandbox Code Playgroud)
你知道我哪里错了吗?
谢谢你们
我尝试使用`log4j.properties'文件配置log4j.
所有的工作,但我发现了一些奇怪的警告:
log4j:WARN没有为logger找到appender(org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager).log4j:WARN请正确初始化log4j系统.log4j:WARN有关详细信息,请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig.
我无法弄清楚这有什么问题.一切都应该有效.
log4j.properties的内容:
# Root logger option
log4j.rootLogger=warn, stdout, file
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.conversionPattern=%d{ABSOLUTE} %5p %t %c{1}:%M:%L - %m%n
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.file=logs/oms_test.log
log4j.appender.file.MaxFileSize=2MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.conversionPattern=%d{ABSOLUTE} %5p %t %c{1}:%M:%L - %m%n
log4j.appender.debugfile=org.apache.log4j.RollingFileAppender
log4j.appender.debugfile.file=logs/oms_test-debug.log
log4j.appender.debugfile.layout=org.apache.log4j.PatternLayout
log4j.appender.debugfile.layout.conversionPattern=%d{ABSOLUTE} %5p %t %c{1}:%M:%L - %m%n
log4j.logger.com.softserve.edu=DEBUG, debugfile
log4j.logger.com.my.app.somepackage.subpackage.ClassName=INFO
Run Code Online (Sandbox Code Playgroud)
这是项目的打击:

编辑:
我从代码中加载log4j.properties:
PropertyConfigurator.configure("src/resourses/log4j.properties");
Logger.getRootLogger();
Run Code Online (Sandbox Code Playgroud)
EDIT2:
我试图改变位置log4j.properties,在不同的位置作为src/main/resourses或者src/test/resourses,src/resourses从代码变更后的装载.
它总是失败:
log4j:ERROR Could not …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Spring Web应用程序中从迁移log4j 1到log4j 2。构建它时,出现以下错误:
2015-08-10 16:26:36,222 DEBUG Built Plugin[name=AppenderRef] OK from factory method.
2015-08-10 16:26:36,222 DEBUG Building Plugin[name=root, class=org.apache.logging.log4j.core.config.LoggerConfig$RootLogger]. Searching for builder factory method...
2015-08-10 16:26:36,222 DEBUG No builder factory method found in class org.apache.logging.log4j.core.config.LoggerConfig$RootLogger. Going to try finding a factory method instead.
2015-08-10 16:26:36,223 DEBUG Still building Plugin[name=root, class=org.apache.logging.log4j.core.config.LoggerConfig$RootLogger]. Searching for factory method...
2015-08-10 16:26:36,223 DEBUG Found factory method [createLogger]: public static org.apache.logging.log4j.core.config.LoggerConfig org.apache.logging.log4j.core.config.LoggerConfig$RootLogger.createLogger(java.lang.String,org.apache.logging.log4j.Level,java.lang.String,org.apache.logging.log4j.core.config.AppenderRef[],org.apache.logging.log4j.core.config.Property[],org.apache.logging.log4j.core.config.Configuration,org.apache.logging.log4j.core.Filter).
2015-08-10 16:26:36,224 DEBUG Calling createLogger on class org.apache.logging.log4j.core.config.LoggerConfig$RootLogger for element Root …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Selenium for Java 制作一个简单的框架。尝试设置它的不幸方面之一是我无权在我的 Windows 机器上编辑系统级变量。
在尝试运行仅尝试访问网站的单个 JUnit 测试,然后在我指向它的页面上断言它时,我不断收到一个错误,提示必须设置 ChromeDriver 可执行文件的路径。我在本地下载了这个。
Caused by: java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html
Run Code Online (Sandbox Code Playgroud)
现在,我可以通过System.setProperty("webdriver.chrome.driver", "/path/to/myexecutable.exe")在程序的主入口点内的类中抛出 a 来避免该错误,但不确定如何使用单元测试解决此问题。
我的基本测试:
package com.mytestpackage;
import org.junit.Assert;
import org.junit.Test;
public class UnitTest {
@Test
public void canGoToHomePage() {
Pages.homePage().goTo();
Assert.assertTrue(Pages.homePage().isAt());
}
}
Run Code Online (Sandbox Code Playgroud)
还有我的三个简单类——浏览器、主页和页面:
浏览器
package com.mytestpackage;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Browser { …Run Code Online (Sandbox Code Playgroud) 我开发了一个 Java Camel 项目,可以将文件从resources/data/inboxSFTP 服务器移动到 SFTP 服务器。
当我运行它时,我收到此消息:
/usr/lib/jvm/jdk1.8.0_144/bin/java... log4j:WARN 找不到记录器的附加程序(org.apache.camel.impl.DefaultCamelContext)。log4j:WARN 请正确初始化 log4j 系统。log4j:WARN 有关更多信息,请参阅 http://logging.apache.org/log4j/1.2/faq.html#noconfig。进程以退出代码 0 结束
我真的不明白该警告消息的含义。谁能解释我如何处理它?
java ×6
log4j ×3
logging ×2
apache-camel ×1
log4j2 ×1
selenium ×1
slf4j ×1
spring ×1
spring-mvc ×1
warnings ×1