【问题标题】:can you explain step by step how to use log4j in ejb module in Jboss7.1?你能一步一步解释如何在Jboss7.1的ejb模块中使用log4j吗?
【发布时间】:2013-01-05 15:07:13
【问题描述】:

你能给我一个逐步的过程吗,以便让 log4j 在 ejb 模块上工作? 情况是这样的:我有我的 ejbmodule,它使用休眠来执行一些获取任务,我想记录所有内容。我想使用 log4j,但我无法理解网络上描述的其他过程的某些步骤,例如 jboss 中的那些。

你能告诉我我应该怎么做吗,一步一步来?

就我而言:

  • 我有我的配置文件(我不知道放在哪里)

  • 我有 log4j.jar(但我不知道放在哪里)

  • 我不知道如何初始化日志环境(我有一个 ejb 会话 bean,它在启动时会初始化休眠,我想要一个初始化记录器)

有谁能帮帮我吗?

提前致谢

编辑: 感谢您的第一个建议,它可能会有所帮助,但我不明白其他人如何在耳朵里有 META-INF。 我的项目看起来像 3 个项目:

  • MyprojectLogic(包含 ejb 模块)
  • MyprojectLogicClient(里面包含了所有的接口,就是给客户端的库)
  • MyprojectLogicEAR(实际上什么都没有,我不明白它的用途是什么)

回答:见下文或在此处查看javaforthewebblog

【问题讨论】:

标签: java jboss log4j ejb jboss7.x


【解决方案1】:

Jboss 已经带有 log4j。 在开发 EJB 时,您需要:

  1. 导入Logger类:import org.apache.log4j.Logger;
  2. 如果导入未解析,请将此 jar 添加到路径:%JBOSS_HOME%\modules\org\apache\log4j\main\log4j-1.2.16.jar
  3. 使用记录器创建一个字段:private static Logger logger = Logger.getLogger(YourEJBClass.class);
  4. 以任何方式使用记录器:logger.info("my log");

JBoss 已经在%JBOSS_FOLDER%/standalone/configuration/standalone.xml 下附带了一个配置文件。默认情况下,您的记录器将输出到 server.log 和控制台,但您可以添加一些附加程序将您的应用程序日志输出到另一个文件。

这是一个示例,编辑该文件并添加以下 sn-ps(按照文件的定义):

  • 这是在logs文件夹内的myappfile.log文件中添加一个appender(在name="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>
  • 添加此 sn-p 告诉 log4j 将“com.mypackage”类别中的所有日志发送到先前创建的附加程序(将其复制到文件中其他定义的记录器之后,但在根记录器之前):
<logger category="com.mypackage">
    <level name="DEBUG"/>
    <handlers>
        <handler name="CONSOLE"/>
        <handler name="FILETWO"/>
    </handlers>
</logger>

重新启动服务器,您应该会在文件夹中看到新的 myappfile.log。确保您的应用程序记录一些内容,例如,在某个 servlet 中添加 logger.info("my servlet info log") 并从浏览器中调用它。您还将在控制台中看到此日志

如果您需要进一步定制,请查看 log4j 帮助。

【讨论】:

  • Ty rafael 响应。我使用 jboss 作为 7.1.1 并且在 jboss 文件夹中没有带有“jboss-log4j.xml”的文件夹“config”,如果我想使用“import org.apache.log4j.*”我应该添加到类路径它的相对 jar 因此它会与假定的已经存在的 log4j 冲突,你能否在你的解释中更友好并更清楚(我很感激,因为从现在起我看到的所有这些都更容易理解)。谢谢
  • 没问题。对于导入,如果您使用的是 eclipse,只需将运行时环境添加到类路径(项目属性 -> Java 构建路径 -> 库 -> 添加库 -> 服务器运行时 -> your_server)。如果您没有配置服务器,只需将 log4j.jar 添加到类路径(存在于 %JBOSS_PATH%/common/lib/ 中。
  • 我的信息来自 jboss 5 服务器,但它似乎在 jboss 7 中不可用。让我深入挖掘一下,我会回来的。
  • 是的,这不适用于 JBoss AS 7.1.x。如果您没有使用控制台或某些文件附加程序以外的任何附加程序,则可以使用日志记录子系统对其进行配置,而不必担心包含 log4j 配置。否则看到这个stackoverflow.com/questions/9584787/using-log4j-with-jboss-7-1/…
  • @Rafael 太棒了!它似乎工作得很好!真的非常感谢!我会为那些需要它的人写一篇文章,并在java for the web 博客上引用你..
猜你喜欢
  • 1970-01-01
  • 2015-08-25
  • 2020-04-14
  • 1970-01-01
  • 2011-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多