使 Logback 在其“%date”格式中包含日期和时间之间的“T”,以严格遵守 ISO 8601

2024-01-12

默认情况下,Logback http://logback.qos.ch/编码器使用一个日期格式 http://logback.qos.ch/manual/layouts.html#date类似于ISO 8601 http://en.wikipedia.org/wiki/ISO_8601标准。但它缺少日期和时间部分中间的“T”。这T使解析更容易,并且是标准所要求的(除非私人团体另有同意)。

有什么技巧可以让 Logback 包含T?

This…

2006-10-20T14:06:49,812

而不是这个……

2006-10-20 14:06:49,812

我想我可以在添加“T”的同时重新创建整个格式,但我想知道是否有一些更简单的方法。


错误报告

有一个关于此的错误报告Logback 的 JIRA 页面 http://jira.qos.ch/browse/LOGBACK-262?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel。此后并没有太大的发展24/Feb/10 3:57 PM。我只是为了吸引注意力而投票。你也应该。

我会提供我自己的匹配的日期格式ISO 8601 https://en.wikipedia.org/wiki/ISO_8601's.

插入“T”

这应该可以解决问题:

<pattern>%d{"yyyy-MM-dd'T'HH:mm:ss,SSS"} [%thread] %-5level %logger{35} - %msg %n
</pattern>

The ""需要使,按照中所述进行工作文档 http://logback.qos.ch/manual/layouts.html.

That <pattern>元素属于您的 Logback 配置设置。这是一个例子logback.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <!-- Strangely, Logback lacks a built-in formatter for ISO 8601. So, roll our own.  -->
            <Pattern>%date{"yyyy-MM-dd'T'HH:mm:ss,SSSXXX", UTC} [%thread] %-5level %logger{36} - %msg%n</Pattern>
        </layout>
    </appender>

    <logger name="com.example" level="TRACE"/>


    <root level="debug">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

时区

为了更全面地符合 ISO 8601 并获得更有用的日志记录,您应该包含时区。

编辑(Michael-O,2014-06-15):那就是not是的,时区是绝对可选的。

要包含时区,请传递第二个参数 (see doc http://logback.qos.ch/manual/layouts.html#date)到%date。通过时区的专有名称 http://en.wikipedia.org/wiki/List_of_tz_database_time_zones。避免使用三或四个字母的时区代码,例如“EST”,因为它们既不唯一也不标准化。例如,通过Australia/Perth。通常对于我们想要的日志记录UTC http://en.wikipedia.org/wiki/Coordinated_Universal_Time(GMT) 时间,意思是没有任何偏移。在这种情况下,通过UTC.

您可以将时区偏移显示为小时数和分钟数,作为日志中日期时间的一部分。附加一个X将时区偏移量显示为日期时间值的一部分。

This…

%date{"yyyy-MM-dd'T'HH:mm:ss,SSSXXX", UTC}

…产生…

2014-04-16T09:59:24,009Z

The XXX适用于 Java 7 和 8。在早期版本的 Java 中,您可以使用Z在格式定义中生成缺少冒号的偏移量。

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

使 Logback 在其“%date”格式中包含日期和时间之间的“T”,以严格遵守 ISO 8601 的相关文章

随机推荐

  • Android Studio 中相对布局问题中按钮顶部的进度条

    好吧 这是一个奇怪的问题 我希望有人能向我解释一下 我有一个自定义按钮布局 它创建一个按钮 按钮中间有一个圆形进度条 我的 XML 代码如下 然而我无法解决的是ProgressBar似乎出现在按钮后面 如果我将按钮背景设置为透明以外的任何内
  • Spring Boot 组件扫描不起作用

    我创建了一个示例 Spring Boot 应用程序 当服务类全部位于一个包中时 该应用程序运行得非常好 但如果服务类引用不同包中的另一个服务类 那么我会收到 BeanCreationException 应用程序的代码如下 主程序 java
  • GLEW:Apple Mach-O 链接器 (Id) 错误

    我试图在我的 Xcode 项目中使用 glew 但我得到了这个 Apple Mach O Linker Id Error Undefined symbols for architecture x86 64 我正在使用从他们下载的最新版本的g
  • Protocol buffers 从原始消息中检测类型

    是否可以检测原始协议缓冲区消息的类型 以字节 为单位 我遇到的情况是端点可以接收不同的消息 并且我需要能够在反序列化之前检测到类型 我正在使用 protobuf net 您无法单独检测类型 因为 protobuf 规范不会为此向流添加任何数
  • 如何使用presto查询hive数据

    我刚刚安装了 presto 当我使用 presto cli 查询 hive 数据时 出现以下错误 presto server node6 8080 catalog hive schema default presto default gt
  • Xcode 9 - 无法附加到 pid 进行框架单元测试

    使用时间机器从一台 Mac 迁移到另一台 Mac 后 我收到以下错误 无法附加到 pid 确保 项目标题 尚未运行 并且 系统用户名 有调试权限 仅当运行 任何 框架项目的单元测试时才会发生该错误 在模拟器和设备上运行应用程序效果很好 为应
  • 在 C# 中从 LINQ 提取 SQL 列扩展属性

    我有一个 SQL 表 每列都有扩展属性 有没有办法使用 Linq2SQL 从 C 中的 LINQ 访问这些 像 MS Description 之类的东西 不 据我所知 您可以编写一个与数据库中的存储进行对话的 SP 获取数据库对象名称和列名
  • 找不到 Storm 日志查看器页面

    我可以在多租户集群中提交拓扑作业 作业正在运行 但是 日志查看器页面不可用 有什么办法可以解决这个问题吗 在单击之前您需要启动日志查看器topology port查看日志查看器 要启动日志查看器 请运行 storm logviewer和你跑
  • 从二维列表中获取唯一元素

    我有一个二维列表 我像这样创建 Z1 0 for x in range 3 for y in range 4 然后我继续填充这个列表 这样Z1看起来像这样 1 2 3 4 5 6 2 3 1 2 5 1 我需要提取unique 1x3要点Z
  • 更改ios8扩展导航栏颜色

    我正在开发 iOS8 应用程序扩展 照片编辑扩展 我尝试过这些方法来更新导航栏颜色 但失败了 UINavigationBar appearance setBarTintColor UIColor yellowColor UINavigati
  • 如何用值向量填充索引矩阵

    我有一个矩阵 m idx 其中包含我想要索引的向量的位置元素 gt m idx 1 2 3 4 5 1 1 2 3 4 5 2 3 4 5 6 7 3 5 6 7 8 9 假设 x 是我的向量 x lt c 9 3 2 5 3 2 4 8
  • 2D 物理引擎:弹跳球与非弹性碰撞不会停止

    我用 Java 创建了一个简单的 2d 物理引擎 它使用圆形射弹和直墙 目前 对于每一帧 每个射弹的位置都会提前velocity 1 fps 之后速度每帧更新一次 碰撞检测使用先前位置和当前位置以点斜率形式定义一条线 检查该线是否与墙壁相交
  • 每 N 行重复一次 Excel 公式

    我正在尝试在 Excel 中添加一个重复公式 该公式将对每个科目的另一列 分数 中的一系列值进行求和 以获得每个科目的总分 我添加了以下公式 该公式似乎正确地合计了值 SUM 偏移 AO 2 ROW 424 424 0 424 1 You
  • 如何更改本机反应中警报的颜色

    如何在 React Native 中更改警报框的背景颜色 字体大小 我在单击按钮后发出警报 我不知道如何设计这个样式 谢谢您的帮助 Alert alert Plate Plate has been sent for printing tex
  • Elasticsearch 7.2.0:尚未发现或选举主节点,选举至少需要 X 个节点

    我正在尝试自动化 Kubernetes 集群中 Elasticsearch 节点的水平扩展和缩小过程 最初 我在 Kubernetes 集群上部署了一个 Elasticsearch 集群 3 个主节点 3 个数据节点和 3 个摄取节点 在哪
  • htaccess 将不带 .php 扩展名的 URL 重写到文件

    我有一个使用 osCommerce 的网站 所有页面都可以直接访问http www example com pagename php 但现在我想调整 htaccess 文件 以便它可以支持http www example com usern
  • 这是一个实用且足够高性能的着色器,可以在移动设备上进行模糊处理吗?

    我正在尝试使用 GLSL 着色器在移动设备上的游戏中实现模糊效果 我以前没有任何编写着色器的经验 我不明白我的着色器是否足够好 其实我已经从教程中复制了GLSL代码 我不知道这个教程是为了生动的演示还是也可以在实践中使用 这是使用高斯权重的
  • python 计算一个字符串在 pandas 数据帧的整行中出现的次数

    我有一个基于我之前的问题question https stackoverflow com questions 48330608 pandas dataframe search sting in the entire row 下面的代码运行良
  • 纯函数超时

    我怎样才能 杀死 一个花费太长时间的纯计算 我试过 import System Timeout fact 0 1 fact n n fact n 1 main do maybeNum lt timeout 10 7 return fact
  • 使 Logback 在其“%date”格式中包含日期和时间之间的“T”,以严格遵守 ISO 8601

    默认情况下 Logback http logback qos ch 编码器使用一个日期格式 http logback qos ch manual layouts html date类似于ISO 8601 http en wikipedia