你可以给我请一步步的程序可循,为了使EJB模块上的log4j的工作? 情况是这样的:我有我的ejbModule,这是使用Hibernate来执行一些任务取,我想记录的一切。 我想使用log4j的,但我不明白像来自JBoss的在网络上描述的其他工序的一些步骤。
能否请你告诉我,我应该一步做一步?
至于我是:
你们谁能帮助我吗?
提前致谢
编辑:感谢您的拳头暗示它可能会帮助,但我不如何已了解其他人可能在耳META-INF。 我的项目看起来像3个项目togheder:
- MyprojectLogic(其中包含ejbmodules)
- MyprojectLogicClient(其中包含所有的接口,这是必须考虑到的客户端库)
- MyprojectLogicEAR(实际上包含什么,我没有得到什么是它的目的)
答:参照下或在这里查看javafortheweb或博客
Jboss的已经自带了log4j的。 当开发你的EJB,你需要:
- 导入Logger类:
import org.apache.log4j.Logger;
- 如果导入不能解决,这个jar添加到路径:%JBOSS_HOME%\模块\组织\阿帕奇\ log4j的\主\ log4j的,1.2.16.jar
- 创建与记录器的字段:
private static Logger logger = Logger.getLogger(YourEJBClass.class);
- 使用任何方法记录:
logger.info("my log");
JBoss的已经自带了下一个配置文件%JBOSS_FOLDER%/standalone/configuration/standalone.xml
。 默认情况下,记录器将输出的server.log和控制台,但您可以将您的应用程序日志中添加一些附加器输出到另一个文件。
下面是一个例子,编辑该文件并添加以下代码段(该文件的定义如下):
- 这一个是一个appender添加到日志文件夹内的文件myappfile.log(下名=“FILE”已经定义的后添加此右):
<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>
- 加上这段代码告诉log4j的从“com.mypackage”类别先前创建的附加器发送的所有日志(复制之后的文件中其他定义记录这个权利,但根记录器前):
<logger category="com.mypackage"> <level name="DEBUG"/> <handlers> <handler name="CONSOLE"/> <handler name="FILETWO"/> </handlers> </logger>
重新启动服务器,你应该看到文件夹中的新myappfile.log。 请确保您的应用程序日志的东西,例如,添加logger.info(“我的servlet信息登录”)在一些servlet和从浏览器中调用它。 您还可以看到该日志在控制台
如果您需要进一步的定制,看看log4j的帮助。