Log4J 配置不显示 JBoss AS7 中的 Spring Transaction 和其他日志

2024-04-27

以下是我的 log4j.properties:

log4j.rootLogger=ALL, 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 [%t] %p [%c] - %m%n


log4j.logger.org.springframework=ALL
log4j.logger.app.dev.ems=ALL
log4j.logger.org.springframework.transaction=ALL

我已经提到过log4jConfigLocation在 web.xml 中:

<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>/WEB-INF/resources/log4j.properties</param-value>
</context-param>

并且还定义了它的监听器类:

<listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

但我无法在控制台中看到 Spring 事务日志。也来自一个班级:app.dev.ems.web.wicket.page.home.HomePage当我做的时候:

Logger logger = LoggerFactory.getLogger(getClass());

public HomePage() {     
    logger.debug("<<<<<<<<<<<<<<<<<<<JYM>>>>>>>>>>>>>>>>>>");//if logger.info is used then it is showing.       
}

这也不显示该日志。我在 Wicket 应用程序中并且已设置:

<init-param>
    <param-name>configuration</param-name>
    <param-value>DEVELOPMENT</param-value>
</init-param>

定义 WicketServlet 时。

我无法找到问题所在。任何信息都会对我非常有帮助。

注意:如果您希望我发布 applicationContext.xml 我可以这样做。事务是注释驱动的。


我添加了log4j-1.2.14、slf4j-api-1.6.1、slf4j-log4j12-1.4.2。我正在使用 JBoss AS-7.1.0-Final。

在其他SO线程中,我看到这是JBoss的问题,根据那里给出的说明,我在WEB-INF中添加了jboss-deployment-struct.xml(也尝试使用META-INF):

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <deployment>
        <exclusions>
            <module name="org.apache.log4j" />
        </exclusions>
    </deployment>
</jboss-deployment-structure> 

并在 applicationContext.xml 中定义了一个 bean,它将加载 log4j.properties:

<bean id="log4jInitializer" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="targetClass" value="org.springframework.util.Log4jConfigurer" />
    <property name="targetMethod" value="initLogging" />
    <property name="arguments">
        <list>
            <value>classpath:/app/dev/ems/web/log4j.properties</value>
        </list>
    </property>
</bean>

但不幸的是它没有起作用。


使用jboss-deployment-structure.xml排除应该有效。如果不是,则可能是您的配置文件的位置。我不熟悉 Spring 所以也许添加<context-param/>是指定日志配置位置的典型方法。

您可能想尝试移动您的log4j.properties到 到WEB-INF/classes or META-INF您的存档目录。此外,您还要确保在部署中包含 log4j 库。

FWIW的jboss-deployment-structure.xml将不再需要日志记录配置。它尚未发布,但已在上游源中。

由于您似乎正在寻找一种打开调试的方法,因此您需要做两件事。您需要设置一个处理程序以允许调试消息通过。您还需要设置一个记录器,即使不是所有消息,至少也允许调试。

例如,在您的情况下,您将创建一个像这样的记录器。

<logger category="app.dev.ems.web.wicket" />

这将创建一个记录所有级别的记录器。现在创建一个处理程序,或更改先前定义的处理程序以接受调试消息。

另一个例子是为您的特定记录器创建一个文件处理程序,它将把您的日志消息打印到文件中。

<file-handler name="myFileHandler>
    <level name="DEBUG"/>
    <file relative-to="jboss.server.log.dir" path="my-log.log"/>
</file-handler>

现在创建您的记录器并为其分配处理程序。

<logger category="app.dev.ems.web.wicket">
    <handlers>
        <handler name="myFileHandler/>
    </handlers>
<logger>

现在,所有日志消息都通过具有以下类别的记录器传递app.dev.ems.web.wicket.*除了附加到根记录器的处理程序之外,还将打印到该文件。如果您不想在默认情况下看到这些server.log或者在控制台上您可以添加use-parent-handler="false"属性到记录器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Log4J 配置不显示 JBoss AS7 中的 Spring Transaction 和其他日志 的相关文章

  • 如何为最终用户方便地启动Java GUI程序

    用户想要从以下位置启动 Java GUI 应用程序Windows 以及一些额外的 JVM 参数 例如 javaw Djava util logging config file logging properties jar MyGUI jar
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • Mockito when().thenReturn 不必要地调用该方法

    我正在研究继承的代码 我编写了一个应该捕获 NullPointerException 的测试 因为它试图从 null 对象调用方法 Test expected NullPointerException class public void c
  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • 如何在 javadoc 中使用“<”和“>”而不进行格式化?

    如果我写
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview
  • 使用 xpath 和 vtd-xml 以字符串形式获取元素的子节点和文本

    这是我的 XML 的一部分

随机推荐

  • 如何使用 AndEngine (Android) 移动精灵对象

    我正在使用 andengine 在 android 中开发游戏 我在精灵中放置了一个对象 例如 this mTexture new Texture 32 32 TextureOptions BILINEAR PREMULTIPLYALPHA
  • 在 ubuntu 10 64 位上安装 java 时出错

    EDIT 我添加此注释是为了解释为什么我将这个问题保留在这里 我添加了 Android 作为关键字 我想知道其他人是否尝试过下载代码以及如何解决此问题 我担心如果我问 Ubuntu 他们会建议我使用 OpenJDK 但问题是 有人使用该 S
  • Tkinter:尝试点击离开时窗口闪烁

    我已经尝试这样做有一段时间了 但还没有找到方法 我有一个 tkinter 脚本 当按下按钮时会创建一个弹出窗口 但是 我不希望用户能够从该窗口单击到之前创建的任何窗口 我已经使用 root grab set 进行了此操作 但是没有任何迹象表
  • 如何在 Laravel 5.4 中将 base64 转换为图像?

    我正在 Laravel 5 4 中开发 api 我将收到 Base64 格式的图像 如何在 Laravel 中将 base64 转换为图像 该解决方案将处理所有图像类型 image request gt input image image
  • 将 Spring Boot Web 应用程序与 Pivotal TC Server 结合使用

    我从 Spring Tool Suite 内部将项目重构为 Spring Boot 应用程序 所有文档都展示了如何创建一个带有嵌入式 Tomcat 实例的自包含应用程序 该应用程序可以工作并且很棒 然而在此之前 我有自己的 Maven We
  • 使用 CSS 与使用列和行调整文本区域大小

    使用列和行调整文本区域大小与使用高度和宽度调整文本区域大小有什么区别
  • 如何将变量从一个 PowerShell 脚本加载到另一个?

    我有一个主脚本正在调用其他几个脚本 我需要将其他脚本中的变量加载到主脚本中 以便我可以将它们转储到 html 文件中 我尝试对我正在调用的脚本进行点采购 但这不起作用 或者我做错了什么 任何帮助 将不胜感激 脚本的示例部分 get clus
  • 在弹出窗口中打开 Google Play(如 Vimeo、Wisher、Buzzfeed)- 即时应用

    如何在 Wisher Buzzfeed Vimeo 等弹出窗口中打开 Google Play 我在看谷歌文档 https developer android com distribute marketing tools linking to
  • C# 以编程方式访问 Excel 宏

    我正在使用 Excel 文件的目录来获取有关每个文件的信息 我正在尝试使用 C Excel 互操作来收集有关与其中一些文件关联的 VBA 宏的信息 其代码如下 问题在于 所有 Excel 文件都没有启用对宏的编程访问 我可以在文件的本地副本
  • PHP - 如何替换 url 的特殊字符

    我正在尝试转换特殊字符 例如 我将使用它们来进行 GET 请求 我为此构建了一个函数 function convert text text t text specChars array gt 20 gt 21 gt 22 gt 23 gt
  • 如何将大于127的ASCII值发送到串口

    每当我将任何大于 127 的 ASCII 值发送到 com 端口时 我都会在串行端口上收到垃圾输出值 ComPort Write data 严格来讲ASCII http en wikipedia org wiki ASCII仅包含 128
  • 使用 WiX 将程序集放入 GAC 和安装路径中

    我刚刚开始学习如何使用 WiX 但遇到了障碍 我的软件包使用第三方库 该库要求 GAC 和软件包安装目录中都存在一些文件 使用 WiX 我可以使文件显示在安装目录或 GAC 中 但不能同时显示在两者中 有什么办法可以解决这个问题吗 这里有一
  • 在 C++ 中传递参数到 boost odeint

    This https stackoverflow com questions 33856910 passing runtime parameters to odeint integrator 答案很有帮助 但我想知道如何将不同类型的多个参数
  • 无需实现可克隆接口即可克隆对象

    要克隆对象 我需要实现 可克隆 接口吗 因为这里我的类是一个 jar 文件 我的意思是 API 所以我无法编辑课程 我听说所有类都扩展了基对象类 并且该对象类实现了可克隆接口 这是否意味着我们可以直接克隆对象而不实现接口 如果是这样 在我的
  • 类型 RoleStore 不可分配给服务 IRoleStore

    我正在尝试使用 Autofac 为使用 MVC5 和 EF6 的项目设置依赖项注入 我很难弄清楚如何正确解耦 EntityFramework RoleStore 实现 我只想依赖 Identity IRoleStore 但我知道对于泛型类
  • 如何将 ListPlot 的图形与 Plot 的图形结合起来?

    有没有办法将图形组合起来ListPlot到一个图形Plot 我需要在 ListPlot 的图形上绘制函数的图形 您可以将任何图形与Show函数如下 Show myListPlot myPlot 这概括为一次组合任意数量的图 Show p1
  • 为什么不卸载类加载器就无法卸载类?

    答案是 卸载java中的类 https stackoverflow com questions 148681 unloading classes in java says 卸载类的唯一方法是使用的类加载器被垃圾收集 我看了一下JLS htt
  • 使用 bash 解析 ICS 文件

    这是一个谷歌日历 ics 文件 我每次都会下载它来检查是否有新的比赛事件被添加或更改 并且我出现在IRC上 我需要转换这样的文件 BEGIN VEVENT DTSTART 20160612T201000Z DTEND 20160612T21
  • pyparsing:示例 JSON 解析器对于字典列表失败

    All 我试图了解如何使用 pyparsing 处理字典列表 我已经回到了JSON 解析器示例 http pyparsing wikispaces com file view jsonParser py 30308858 jsonParse
  • Log4J 配置不显示 JBoss AS7 中的 Spring Transaction 和其他日志

    以下是我的 log4j properties log4j rootLogger ALL stdout log4j appender stdout org apache log4j ConsoleAppender log4j appender