为了让log4j在ejb模块上工作,你能不能一步一步地给我一个程序? 情况是这样的:我有我的ejbmodule,它使用hibernate来执行一些提取任务,我想记录所有内容。我想使用log4j,但是我无法理解网络上描述的其他程序的一些步骤,例如来自jboss的程序。
你能告诉我我应该做什么,一步一步吗?
就我而言:
我有我的配置文件(我不知道放在哪里)
我有log4j.jar(我不知道放在哪里)
我不知道如何初始化日志环境(我有一个ejb会话bean,在启动时初始化hibernate,我希望有人初始化记录器)
你们有人可以帮助我吗?
提前致谢
编辑: 感谢第一个建议,它可能会有所帮助,但我不明白其他人可能在耳朵里有META-INF。 我的项目看起来像3个项目togheder:
答案:请参阅下文或查看此处javafortheweb或blog
答案 0 :(得分:2)
Jboss已经附带了log4j。 在开发EJB时,您需要:
import org.apache.log4j.Logger;
private static Logger logger = Logger.getLogger(YourEJBClass.class);
logger.info("my log");
JBoss已经在%JBOSS_FOLDER%/standalone/configuration/standalone.xml
下附带了一个配置文件。默认情况下,您的记录器将输出到server.log和控制台,但您可以添加一些appender将您的应用程序日志输出到另一个文件。
以下是一个示例,编辑该文件并添加以下代码段(遵循文件定义):
<periodic-rotating-file-handler name="FILETWO"> <formatter> <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> </formatter> <file relative-to="jboss.server.log.dir" path="myappfile.log"/> <suffix value=".yyyy-MM-dd"/> <append value="true"/> </periodic-rotating-file-handler>
<logger category="com.mypackage"> <level name="DEBUG"/> <handlers> <handler name="CONSOLE"/> <handler name="FILETWO"/> </handlers> </logger>
重新启动服务器,您应该在文件夹中看到新的myappfile.log。确保您的应用程序记录某些内容,例如,在某个servlet中添加logger.info(“我的servlet信息日志”)并从浏览器中调用它。您还将在控制台中看到此日志
如果您需要进一步定制,请查看log4j帮助。