在Google App Engine上使用log4j

new*_*bie 4 java google-app-engine log4j

我需要在我的应用程序中使用log4j的,但我不知道我怎样才能加载性能.Deafult属性文件说我应该把log4j.properties到/ WEB-INF/classes目录/文件夹,但在Eclipse中我看不到该文件夹​​,我不能创建它,因为它已经存在.我也无法将任何文件添加到该文件夹​​中.

这是我得到的错误:

log4j:WARN No appenders could be found for logger (DataNucleus.ClassLoading).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Run Code Online (Sandbox Code Playgroud)

所以,我怎么能得到Web应用程序加载log4j属性?

dge*_*ske 6

将log4j.properties文件放入项目的源目录,例如/ src.Eclipse会将其复制到目标构建目录中.

我建议使用带有Log4J的SLF4J和用于项目的SpringSource工具套件(STS).


小智 5

以下是如何使用Eclipse插件使用Eclipse运行log4j .

修改appengine-web.xml,如下所示:

<system-properties> 
  <property name="java.util.logging.config.file" value="WEB-INF/classes/log4j.properties"/> 
</system-properties> 
Run Code Online (Sandbox Code Playgroud)

您可以将以下代码添加到servlet:

import org.apache.log4j.Logger; 
... 
Logger logger = Logger.getLogger("com.foo"); 
logger.debug("Yay2!"); 
Run Code Online (Sandbox Code Playgroud)

将log4j.properties文件放在src /目录中,其中包含以下内容:

log4j.rootLogger=DEBUG, 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 
Run Code Online (Sandbox Code Playgroud)

您可以执行项目>清理然后允许它自动构建,构建将log4j.properties文件复制到/ war/WEB-INF/classes /.运行方式> Web应用程序并请求URL时,您将看到显示的日志.

我知道您没有使用Maven,但我会在下面添加说明以防其他人需要它们.这些说明适用于com.google.appengine.archetypes:guestbook-archetype.

将以下内容添加到pom.xml:

<dependency> 
<groupId>log4j</groupId> 
<artifactId>log4j</artifactId> 
<version>1.2.16</version> 
</dependency> 
Run Code Online (Sandbox Code Playgroud)

将以下代码添加到guestbook.jsp:

<%@ page import="org.apache.log4j.Logger" %> 
... 
<% 
Logger logger = Logger.getLogger("com.foo"); 
logger.debug("Yay2!"); 
%> 
Run Code Online (Sandbox Code Playgroud)

使用与上面相同的内容创建src/main/webapp/WEB-INF/classes/log4j.properties.

然后运行:

mvn clean 
mvn verify 
mvn appengine:devserver 
Run Code Online (Sandbox Code Playgroud)

调用后,您将在我们的控制台中看到日志输出http://localhost:8080/.