JBoss/Wildfly AS 内重复格式化的记录器输出

2023-12-12

看来,我不能排除 JBoss/ Wildfly 日志子系统。

我有一个 Java EE 耳朵,希望将 slf4j API 与 log4J2 实现一起使用。

我的目的是禁用 JBoss 日志记录子系统,让我的 slf4j log4j2 实现处理日志记录。但我仍然得到标准输出的重复处理:

12:55:00,820 INFO [stdout] (Thread-316) 12:55:00 INFO

耳朵的结构如下:

d-----       03.07.2020     12:53                lib
d-----       03.07.2020     12:53                META-INF
-a----       03.07.2020     12:53          13238 org.example-helloworld-ejb-1.0-SNAPSHOT.jar
-a----       03.07.2020     12:53        3598717 org.example-helloworld-web-1.0-SNAPSHOT.war

lib目录:

-a----       03.07.2020     12:53          26586 javax.annotation-javax.annotation-api-1.3.2.jar
-a----       03.07.2020     12:53          63679 javax.ejb-javax.ejb-api-3.2.2.jar
-a----       03.07.2020     12:53          28016 javax.transaction-javax.transaction-api-1.3.jar
-a----       03.07.2020     12:53         126898 javax.ws.rs-javax.ws.rs-api-2.1.1.jar
-a----       03.07.2020     12:53         292301 org.apache.logging.log4j-log4j-api-2.13.3.jar
-a----       03.07.2020     12:53        1714164 org.apache.logging.log4j-log4j-core-2.13.3.jar
-a----       03.07.2020     12:53          23590 org.apache.logging.log4j-log4j-slf4j-impl-2.13.3.jar
-a----       03.07.2020     12:53           1526 org.example-helloworld-config-1.0-SNAPSHOT.jar
-a----       03.07.2020     12:53           6071 org.example-helloworld-model-1.0-SNAPSHOT.jar
-a----       03.07.2020     12:53          41203 org.slf4j-slf4j-api-1.7.25.jar

META-INF 目录:

-a---- 03.07.2020 12:53 470 jboss-deployment-structure.xml

内容jboss-deployment-structure.xml:

<jboss-deployment-structure
        xmlns="urn:jboss:deployment-structure:1.2"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">


    <deployment>

        <dependencies>
            <module name="config"/>
        </dependencies>

    <exclude-subsystems>
        <subsystem name="logging" />
    </exclude-subsystems>

    </deployment>

</jboss-deployment-structure>

此外我修改了standalone.xml:

[..]
 <profile>
        <subsystem xmlns="urn:jboss:domain:logging:8.0">
            <add-logging-api-dependencies value="false"/>
            <console-handler name="CONSOLE">
                <formatter>
[..]

My log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="3" status="INFO">
  <Appenders>
    <Console name="Console1" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{1.}} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="all">
      <AppenderRef ref="Console1"/>
    </Root>
  </Loggers>
</Configuration>

NOTE:我也尝试过使用logback作为日志记录的实现。这also生成重复格式的输出到 stdout.#

任何解决/解决方法的提示都非常感谢!


如果您想在使用 slf4j 的部署中使用 log4j-core(log4j2 日志管理器实现),则需要在您似乎正在执行的部署中包含正确的依赖项。

然后,您需要告诉 WildFly 不要将日志依赖项添加到您的部署中。以下选项将排除日志记录依赖项添加到您的部署中

  1. Use a jboss-deployment-structure.xml排除日志子系统
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <deployment>
        <exclude-subsystems>
            <subsystem name="logging"/>
        </exclude-subsystems>
    </deployment>
</jboss-deployment-structure>
  1. 改变add-logging-api-dependencies归因于false。请注意,这会影响所有部署。
/subsystem=logging:write-attribute(name=add-logging-api-dependencies, value=false)
  1. Use a jboss-deployment-structure.xml排除每个日志记录模块。不过,选项 1 比这个容易得多。

重复输出的原因是 WildFly 换行System.out and System.err在记录器中,其各自的记录器名称为stdout and stderr。要解决此问题,您需要添加新的格式化程序、控制台处理程序和记录器以删除默认的控制台处理程序格式。

/subsystem=logging/pattern-formatter=stdout:add(pattern="%s%n")
/subsystem=logging/console-handler=stdout:add(named-formatter=stdout, autoflush=true, target=System.out)
/subsystem=logging/logger=stdout:add(use-parent-handlers=false, handlers=[stdout])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JBoss/Wildfly AS 内重复格式化的记录器输出 的相关文章

  • HornetQ 重启后不会保留消息

    我使用 HornetQ 作为队列提供程序 因为它具有持久性功能 但是 在我重新启动应用程序后 队列中的所有消息都会丢失 也许是配置问题 这是代码 Step 1 Create the Configuration and set the pro
  • Arquillian 测试在 JBoss eap 6.1 上失败(但在 JBoss 7.1.1 上工作)

    我在 JBoss eap 6 1 服务器上运行 arquillian 测试 由 jenkins 作业启动 时遇到问题 在 JBoss 7 1 1 服务器上运行测试没有问题 但是当我切换到 eap 6 1 时 所有测试都会出现以下异常 jav
  • 如何在我的 Maven 项目中正确包含“org.apache.catalina.filters.SetCharacterEncodingFilter”过滤器?

    我使用 Maven 3 3 和 JBoss 7 1 3 Final Java 6 我想在我的 Web 应用程序中包含一个过滤器 以便所有传入请求数据都将编码为 UTF 8 所以我将其添加到我的 web xml 文件中
  • Log4j TimeBased 触发策略中 modulate = 'true' 表示什么

    在下面的示例中 每天都会创建一个日志文件 考虑到这个例子 您能否提供一个场景来展示 modulate true 的用法 并将间隔设置为 1
  • 在 HTTP 和 HTTPS 之间切换时,JSessionID 会被覆盖。怎么解决?

    我们遇到以下情况 Go to http website 并单击链接http 网站 appX检查 cookie 是否显示 JSessionID 且 secure NO 打开另一个浏览器窗口或选项卡并转到https website 并单击链接h
  • JBoss Seam:组件注入 POJO,但不注入会话 Bean

    我有一个处理登录的 Seam 组件 名称为 authenticator Name authenticator public class AuthenticatorAction implements Authenticator Persist
  • 使用 javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL 导致 viewParam 为 null

    我正在尝试将应用程序从 WildFly 13 Java EE 7 JSF 2 2 15 切换到 WildFly 16 Java EE 8 JSF 2 3 9 尝试了 PrimeFaces 6 2 和 7 0 在 web xml 中javax
  • Log4J2 JSONLAYOUT 如何添加自定义参数

    如何向Log4j2的JSONLAYOUT添加自定义参数 还有一种方法可以将模式添加到 JSONLAYOUT 的消息元素中吗 我已经尝试过此处列出的选项 gt logging apache org log4j 2 x manual layou
  • Glassfish 和 JBoss 5 的现实比较?

    在现实世界中有人有这两种经历吗 它们在性能 内存使用 速度等 方面如何比较 稳定 JBoss Seam 在 Glassfish 上运行良好吗 从我自己的经历来看 有几点 GlassFish 拥有更好的管理控制台 JBoss 有三个控制台 每
  • 配置 logback 以遵循 Java 配置,即 Logback 的纯 Java 配置

    我只是不喜欢 Logback 的 XML 或 Groovy 配置 更喜欢用 Java 进行配置 这也是因为我将在初始化后的不同时间在运行时更改配置 似乎对 Logback 进行 Java 配置的唯一方法是进行某种初始化劫持根追加器 http
  • 使用 HornetQ (JBoss) 在 docker 容器上公开的 JMS 所需的端口

    我正在使用 Docker 将 JMS 服务器容器链接到另一个 JMS 客户端容器 但是当我在docker容器中运行服务器时 客户端无法正确连接到服务器 我在docker上暴露了端口443 JMS还有其他使用的端口吗 我可以成功创建目标 但不
  • Maven 记录器的 SLF4J 桥

    我正在编写 Maven 3 x 插件 并想使用 SLF4J 和 Logback 进行日志记录 我发现了 Maven Logger 的一些 SLF4J 绑定 http www jcabi com jcabi maven slf4j index
  • 在 Servlet 2.4 容器上运行 JSF 2.0

    据我所知 JSF 2 需要 servlet 2 5 因此它不能在 JBOSS 4 05 Tomcat 5 5 上运行 不幸的是 我必须在该环境中部署一个使用 JSF 2 0 和 Primefaces 的应用程序 有什么黑客可以使用它吗 JS
  • 在 Java EE 应用程序开发中使用 Docker

    我将添加300点作为赏金 我最近开始仔细研究 Docker 以及如何使用它来更快地让团队的新成员启动并运行开发环境 以及将新版本的软件交付到生产环境 我有一些关于如何以及在什么阶段将 Java EE 应用程序添加到容器的问题 据我所知 有多
  • 如何在Windows上启动JBoss AS 7.1.1?

    我是新来的JBOSS 我下载了jboss as 7 1 1 Final zip并解压缩该 zip 文件 然后我转到 bin 文件夹并双击standalone bat 但新的 cmd 窗口在 2 3 秒内打开和关闭 我尝试通过cmd启动服务器
  • 詹金斯可以在构建操作之间添加睡眠时间吗?

    我正在 Jenkins 中启动 JBoss 服务器作为构建操作 下一个操作将运行一组测试 我需要在两个操作之间添加睡眠时间 有谁知道如何轻松做到这一点 可以使用sleep进入 Jenkins 管道 该步骤包含在管道 基本步骤 https p
  • 反向代理后面的 keycloak 重定向

    我正在尝试让 keycloak 在 kubernetes 中的 kong 入口后面运行 我遇到的问题是 keycloak 正在添加一个它认为它位于返回的网址上的端口 要求 auth mydomain com auth回复 auth mydo
  • JBoss 中的 jndi.properties

    有没有办法配置 JNDI 以便查找首先检查 localhost 如果没有找到匹配的名称 则会自动发现其他 jndi 服务器 我对文档的理解是 这是使用集群时的默认行为 16 2 2 客户端配置 http docs jboss org jbo
  • JBoss 会话超时

    我正在尝试编写我的应用程序的一部分 以便它可以优雅地处理会话超时 但我似乎无法控制测试超时之前的持续时间 我正在使用 JBoss 5 1 并且正在修改我的 Web 描述符 web xml 的会话配置 以便会话在一分钟后超时 仅用于测试
  • 覆盖 logback 配置

    有什么方法可以覆盖 logback 配置吗 我知道我们在名为的文件中定义了 logback 配置logback xml 通常存储在路径中src main resources 并且我知道通过使用

随机推荐

  • 在 Pandas 中基于堆叠列来延长 DataFrame

    我正在寻找一个可以实现以下目标的函数 最好通过一个例子来展示 考虑 pd DataFrame 1 2 3 4 5 np nan columns x y1 y2 看起来像 x y1 y2 0 1 2 3 1 4 5 NaN 我想折叠y1 an
  • 使 IE8 与 EaselJS 和 ExplorerCanvas 兼容

    我正在使用 EaselJS 并希望允许与 ExplorerCanvas 向后兼容 使用以下代码应该可以实现这一点 请参阅here createjs createCanvas function return canvas implementa
  • 使用通配符打开 Excel 工作簿

    我想使用通配符打开与宏工作簿存储在同一文件夹中的工作簿 文件夹中有一个文件名为302113 401yr r01 xlsm 这是我的代码 Workbooks Open filename ActiveWorkbook Path 302113 x
  • 以编程方式访问浏览器历史记录

    我如何创建一个应用程序来读取我的所有浏览器 firefox 历史记录 我注意到我有 C Users 用户名 AppData Local Mozilla Firefox Profiles 646vwtnu default 看起来像一个 sql
  • Web 组件设计模式

    任何人都知道我们在 Web 组件设计中面临的常见设计问题 我从 Vuejs ReactJS 和 Angular 2 开始 但我面临的最常见问题是组件之间的通信 我想与其他动态组件通信并将一些数据传递给它并期望返回数据 就像我有一个重复的项目
  • 如何将模块声明注入到 JAR 中?

    假设我有一些图书馆lib jar我没有源代码 或者它是用某种非 Java 语言编写的 目前还不知道模块 lib jar不具有module info class我不想将它用作自动模块 所以我想注入module info class进去 我首先
  • 出现 null 错误时调用成员函数 get()

    我在 CodeIgniter 2 2 1 中不断收到此错误 致命错误 在第 6 行的 C xampp htdocs ci application models site model php 中对 null 调用成员函数 get 我不是确定为
  • 如何在多个maven项目之间共享公共属性?

    我有几个由maven构建的项目 我想在它们之间共享一些共同的属性 spring版本 mysql驱动程序版本 svn基本url等 所以我可以更新它们一次 它将反映在所有项目上 我想过拥有一个具有所有属性的超级 pom 但是如果我更改其中一个问
  • python str.replace 实际上并没有修改字符串

    我有一个关于 Python 和 Json 的问题 我正在使用discord py 编写一个discord 机器人 我想要一个配置文件 在我的代码中 我需要替换 Python 文件中变量中的字符串 这是我当前的代码 change prefix
  • 找不到以下类:android.support.v7.internal.app.WindowDecorActionBar

    Android Studio布局预览出现如下错误是什么原因 渲染问题无法找到以下类 android support v7 internal app WindowDecorActionBar 修复构建路径 创建类 提示 尝试构建项目 操作栏已
  • 如何在 clojure 中设置和获取多方法元数据?

    我正在使用多种方法来解析命令行命令及其参数 defmulti run fn command args command defmethod run default args command defmethod run help args Di
  • PHP - UTF-16 到 UTF-8(十六进制)转换

    是否可以转换UTF 16 U 610F样式字符转为 UTF 8 十六进制 E6848F使用PHP UTF 8 字符是 意 从评论中chr手册页 一种将序数字符转换为 UTF 8 字节序列的快速技巧 function unichr u ret
  • VS代码模块pygame没有init成员

    我想学习 pygame 所以我将其下载到 VS code 中并开始编码 如您所知 您要做的第一件事就是导入 pygame 然后当我执行此操作时 出现 pygame init 错误 提示 pygame 没有 init 成员 会弹出消息 其中包
  • gitosis 与 gitolite? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在寻找安装 git 服务器来与我的团队共享项目 我不想在服务器上为每个需要 git 访问权限的开发人员创建一个具有 SSH 访问权限的用户帐户
  • 为什么这个页面会滚动?

    html body height 100vh body margin 0px footer height 50px page wrap width calc 100 100px height calc 100 100px position
  • Mysql 表分区基于列/id 的最后一位数字

    我想根据员工 ID 的最后一位创建分区 IE all ids ending with 0 go to first partition ending with 1 go to second partition and so on 这样我想创建
  • 使用多行字符串的正则表达式修剪行并缩小空格

    I m using a php function want to create a function to trim all unnecessary white spaces from a multi line string 它不起作用的正
  • 如何在静态方法中访问下拉列表

    我有以下静态方法 public static List
  • 如何为节点设置预加载文件?

    有没有办法在每次运行之前预加载一些文件node 交互式 就像 vimrc bash profile etc I use node主要是交互方式 我使用该模块CSV很多 有没有办法避免打字require csv 每次我开始node 创建初始化
  • JBoss/Wildfly AS 内重复格式化的记录器输出

    看来 我不能排除 JBoss Wildfly 日志子系统 我有一个 Java EE 耳朵 希望将 slf4j API 与 log4J2 实现一起使用 我的目的是禁用 JBoss 日志记录子系统 让我的 slf4j log4j2 实现处理日志