Log4j 2 JSON 配置

2023-11-23

我有一个 XML 配置,我想将其转换为 JSON。 Log4j 未加载 JSON 版本,并且我找不到任何拼写错误。我的测试代码只是记录一个ERROR水平和一个DEBUG级别消息。仅有的ERROR正在显示消息并且没有生成文件输出 - 我假设框架回退到默认初始化而不是 JSON 文件。

注意:log4j2-test.json 文件位于类路径上。

我在用着阿帕奇-log4j-2.0-beta9 binary 在这里找到.

XML 配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration name="Test">
    <Properties>
        <Property name="Directory">${sys:user.home}/logs</Property>
        <Property name="Filename">test.log</Property>
    </Properties>
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <RollingFile name="File" 
            fileName="${Directory}/${Filename}" 
            filePattern="${Directory}/${date:yyyy-MM}/test-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout>
                <pattern>%d %p %logger{36} [%t] %m%n</pattern>
            </PatternLayout>
            <Policies>
                <SizeBasedTriggeringPolicy size="1 MB"/>
            </Policies>
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="File"/>
        </Root>
    </Loggers>
</Configuration>

JSON 配置为:

{
   "configuration": {
      "name": "Default",
      "properties": {
         "property": {
            "name":"Directory",
            "value":"${sys:user.home}/logs"
         },
         "property": {
            "name":"FileName",
            "value":"test.log"
         }
      },
      "appenders": {
         "Console": {
            "name":"Console",
            "target":"SYSTEM_OUT",
            "PatternLayout": {
               "pattern":"%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"
            }
         },
         "RollingFile": {
            "name":"File",
            "fileName":"${Directory}/${FileName}",
            "filePattern":"${Directory}/${date:yyyy-MM}/test-%d{MM-dd-yyyy}-%i.log.gz",
            "PatternLayout": {
               "pattern":"%d %p %logger{36} [%t] %m%n"
            },
            "Policies": {
               "SizeBasedTriggeringPolicy": {
                  "size":"1 MB"
               }
            },
            "DefaultRolloverStrategy": {
               "max":"10"
            }
         }
      },
      "loggers": {
         "root": {
            "level":"debug",
            "appender-ref": {
               "ref":"Console"
            },
            "appender-ref": {
              "ref":"File"
            }
         }
      }
   }
}

我找到了解决问题的方法。

事实证明,Log4j 2 配置没有记录所有必需的依赖项:

JSON 支持使用 Jackson 数据处理器来解析 JSON 文件。这些依赖必须添加到想要使用的项目中 JSON 配置:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.8.7</version>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.8.7</version>
</dependency>

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

Log4j 2 JSON 配置 的相关文章

  • 与 Eclipse 中的 Java Content Assist 交互

    作为我的插件项目的一部分 我正在考虑与 Eclipse 在 Java 文件上显示的内容辅助列表进行交互 我正在尝试根据一些外部数据对列表进行重新排序 我看过一些有关创建新内容辅助的教程 但没有看到有关更改现有内容辅助的教程 这可能吗 如果是
  • eclipse行号状态行贡献项是如何实现的?

    我需要更新状态行编辑器特定的信息 我已经有了自己的实现 但我想看看 eclipse 贡献项是如何实现的 它显示状态行中的行号 列位置 谁能指点一下 哪里可以找到源代码 提前致谢 亚历克斯 G 我一直在研究它 它非常复杂 我不确定我是否了解完
  • Android:文本淡入和淡出

    我已阅读此 stackoverflow 问题和答案 并尝试实现文本淡入和淡出 Android中如何让文字淡入淡出 https stackoverflow com questions 8627211 how to make text fade
  • 将 Laravel 集合/数组转换为 Javascript 数组

    我想将 Laravel 中的数组分配给 JavaScript 数组 我已经从我的AppServiceProvider和 json decoded 它像 View composer function view users Users all
  • 如何在 Java 中向时间戳添加/减去时区偏移量?

    我正在使用 JDK 8 并且玩过ZonedDateTime and Timestamp很多 但我仍然无法解决我面临的问题 假设我得到了格式化的Timestamp在格林威治标准时间 UTC 我的服务器位于某处 假设它设置为Asia Calcu
  • 在android中从JSON生成listview

    我对 Android 完全陌生 目前正在尝试从从我的服务器中提取的 JSON 数组生成列表视图 我已经阅读了很多教程 但没有运气 有一种独特的方法可以做到这一点 请您指出一些适合开始的资源 我读过了this http www josecgo
  • 将巨大的模式编译成Java

    有两个主要工具提供了将 XSD 模式编译为 Java 的方法 xmlbeans 和 JAXB 问题是 XSD 模式确实很大 30MB 的 XML 文件 大部分模式在我的项目中没有使用 所以我可以注释掉大部分代码 但这不是一个好的解决方案 目
  • 将人类日期(当地时间 GMT)转​​换为日期

    我正在服务器上工作 服务器正在向我发送 GMT 本地日期的日期 例如Fri Jun 22 09 29 29 NPT 2018在字符串格式上 我将其转换为日期 如下所示 SimpleDateFormat simpleDateFormat ne
  • PHP MVC 应用程序中哪里可以捕获异常?

    我有一个中小型 PHP 应用程序 用于练习 OOP 和 MVC 技能 我有初始化 引导程序调用的文件Router谁打电话控制器 gt 服务层 gt 存储库 数据库 然后将变量发送回视图层 所有依赖项均由 DiC IOC 处理 我创建抽象类
  • 如何在JPanel中设置背景图片

    你好 我使用 JPanel 作为我的框架的容器 然后我真的想在我的面板中使用背景图片 我真的需要帮助 这是我到目前为止的代码 这是更新 请检查这里是我的代码 import java awt import javax swing import
  • 使用 Elastic Beanstalk 进行 Logback

    我在使用 Elastic Beanstalk 记录应用程序日志时遇到问题 我正在 AWS Elastic Beanstalk 上的 Tomcat 8 5 with Corretto 11 running on 64bit Amazon Li
  • 在 Java 中获取并存储子进程的输出

    我正在做一些需要我开始子处理 命令提示符 并在其上执行一些命令的事情 我需要从子进程获取输出并将其存储在文件或字符串中 这是我到目前为止所做的 但它不起作用 public static void main String args try R
  • 不可变的最终变量应该始终是静态的吗? [复制]

    这个问题在这里已经有答案了 在java中 如果一个变量是不可变的并且是final的 那么它应该是一个静态类变量吗 我问这个问题是因为每次类的实例使用它时创建一个新对象似乎很浪费 因为无论如何它总是相同的 Example 每次调用方法时都会创
  • 手动设置Android Studio的JDK路径

    如何为 Android Studio 使用自定义 JDK 路径 我不想弄乱 PATH 因为我没有管理员权限 是否有某个配置设置文件允许我进行设置 如果您查看项目设置 您可以从那里访问 jdk 在标准 Windows 键盘映射上 您可以在项目
  • java XMLSerializer 避免复杂的空元素

    我有这个代码 DocumentBuilderFactory factory DocumentBuilderFactory newInstance DocumentBuilder builder factory newDocumentBuil
  • partitioningBy 必须生成一个包含 true 和 false 条目的映射吗?

    The 分区依据 https docs oracle com javase 8 docs api java util stream Collectors html partitioningBy java util function Pred
  • Android View Canvas onDraw 未执行

    我目前正在开发一个自定义视图 它在画布上绘制一些图块 这些图块是从多个文件加载的 并将在需要时加载 它们将由 AsyncTask 加载 如果它们已经加载 它们只会被绘制在画布上 这工作正常 如果加载了这些图片 AsyncTask 就会触发v
  • Java/Python 中的快速 IPC/Socket 通信

    我的应用程序中需要两个进程 Java 和 Python 进行通信 我注意到套接字通信占用了 93 的运行时间 为什么通讯这么慢 我应该寻找套接字通信的替代方案还是可以使其更快 更新 我发现了一个简单的修复方法 由于某些未知原因 缓冲输出流似
  • 由 Servlet 容器提供服务的 WebSocket

    上周我研究了 WebSockets 并对如何使用 Java Servlet API 实现服务器端进行了一些思考 我没有花费太多时间 但在使用 Tomcat 进行一些测试时遇到了以下问题 如果不修补容器或至少对 HttpServletResp
  • java'assert'和'if(){}else exit;'之间的区别

    java和java有什么区别assert and if else exit 我可以用吗if else exit代替assert 也许有点谷歌 您应该记住的主要事情是 if else 语句应该用于程序流程控制 而assert 关键字应该仅用于

随机推荐

  • 全文搜索是答案吗?

    好的 我有一个看起来像这样的 mySQL 数据库 ID 一个 int 和记录的唯一 ID 标题 项目的名称 描述 项目描述 我想搜索目前我正在使用的关键字的标题和描述 选择 来自 项目 其中标题类似 key 这是可行的 因为数据库中没有太多
  • Memcached:AWS Elasticache 上的自动发现 python 支持?

    我开始将 AWS Elasticache 与我的 django Web 应用程序结合使用 我首先使用自动发现功能将缓存位置设置为唯一端点 但它似乎不起作用 我使用 pylibmc 1 2 2 和 django pylibmc sasl 0
  • 在 Windows Server 2008 上构建 Windows Phone 7 项目

    我的公司正计划针对 Windows Phone 7 进行开发 但是 我们拥有的构建服务器运行的是 Windows Server 2008 根据Windows Phone SDK 发行说明我了解到该 SDK 仅不支持 Windows Serv
  • 有哪些好方法可以防止人们复制我的源代码? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我有很多定制的 JavaScript 和布局设计 我想阻止人们使用这些 有没有什么实用的方法可以做到这一点 或者我基本上只需要高兴我的 php 代码没有显示 我想让至少让复制我的
  • 如何查看 git 中忽略的文件列表?

    过去几个月我一直在使用 git 我喜欢 git 我想知道是否有一个命令可以显示项目中被忽略的文件列表 我试过这个git status ignored从项目的根目录 但这似乎还不够 您可以使用clean带有选项的命令 n dry run Do
  • awk:对数组a的非法引用

    我正在尝试使用这个 awk 命令 awk F FILENAME ARGV 1 a FNR 1 FILENAME ARGV 2 for i 1 i lt length a i if match 0 a i print a i 1 16 pas
  • Autohotkey 应用程序特定热键

    我是 Autohotkey 的新手 尽管阅读了这个网站和官方文档 但我还是无法弄清楚这一点 我只想让某些热键仅适用于某些应用程序 例如 如果我在某个游戏中按空格键 我希望它发送 坟墓 但如果我不在该游戏中 我希望空格键正常工作 当我不玩游戏
  • ESLint:插件“react”之间存在冲突

    我在一个整体 npm 组件包内有一个 React 应用程序 React 应用程序用作演示站点 它使用此组件包作为 Storybook 之上的集成步骤 local component package storybook demos react
  • OpenMP while 循环

    我有一个运行多次迭代的代码 只有满足条件时 才会保存迭代的结果 这自然地表示为 while 循环 我试图使代码并行运行 因为每个实现都是独立的 所以我有这个 while nit
  • 如何在log4j.xml中设置过滤器

    HI 在我们的 Web 应用程序中 它打印所有日志 就像 Spring 和 JSF jar 文件一样 这对我们来说不是必需的 如何在 log4j xml 文件中设置为仅针对我们的应用程序进行过滤 Updated 以下是我们用于日志记录的配置
  • 编译器错误:“需要类、接口或枚举”

    我已经花了几个小时对该程序进行故障排除 尝试了几种配置 但没有成功 它是用java编写的 有33个错误 从之前的50个减少 源代码 This program is named derivativeQuiz java stored on a
  • SimpleUrlHandlerMapping的Java配置(Spring boot)

    我有一个现有的 Spring Web 应用程序 它使用两个扩展 AbstractController 的控制器 我想将 Spring Boot 集成到应用程序中 以便我们可以将其作为独立应用程序运行 我面临一个问题 因为 Spring 没有
  • Codeigniter:在将表单提交给控制器之前如何加密密码?

    我有一个简单的html登录表单
  • “核心数据不是关系数据库。”为什么知道这一点很重要?

    我意识到这对很多人来说可能是常识 所以如果这看起来像一个愚蠢的问题 我深表歉意 我正在尝试学习iOS编程的核心数据 并且我反复阅读和听到它说核心数据 CD 不是关系数据库 但关于这一点 或者为什么了解超越学术意义的确切内容很重要 却很少有其
  • 如何使用 C# 识别文件的扩展名/类型?

    我有一个工作流程 允许用户上传任何文件 然后将读取该文件 现在我的问题是 如果用户有图像文件 xyz jpg 并且他仅将其重命名为 xyz 删除扩展名 那么我们仍然可以使用 读取文件数据 元数据来获取文件的类型 扩展名 谢谢大家 See P
  • go regex 是否将任何字符匹配换行符

    Go s re2语法文档表示任意字符 匹配任何 字符 包括换行符 s true 不过我写了一个简单的程序 结果显示任何字符根本不匹配换行符 该程序 可以在这里找到 http play golang org p pccP52RvKS 像大多数
  • PDO:如何检查连接是否确实有效?

    曾经有过two 问题已经讨论过这个问题 但没有人真正回答这个问题 我知道如果连接失败 PDO 会抛出异常 假设您启用PDO ERRMODE EXCEPTION 但我想测试连接是否still活跃 可能是几个小时后 我有一个长时间运行的脚本 一
  • 如何通过Javascript解析多维JSON数据

    我如何解析这种类型的 json 数据 获取 结果 以获取邮政编码 州等单个值 row id 5 name test email email protected street mystreet city mycity state mystat
  • 使用 Excel VBA 更改已关闭工作簿中单元格的值?

    我目前在 VBA 中使用此函数来获取关闭的工作簿中单元格的值 我想使用类似的过程将单元格的值设置为我想要的任何值 而无需打开文件 那可能吗 Private Function GetValue path file sheet ref Dim
  • Log4j 2 JSON 配置

    我有一个 XML 配置 我想将其转换为 JSON Log4j 未加载 JSON 版本 并且我找不到任何拼写错误 我的测试代码只是记录一个ERROR水平和一个DEBUG级别消息 仅有的ERROR正在显示消息并且没有生成文件输出 我假设框架回退