|
|
1
92
首先,正如@darioo所说:
所以你要用MDC来做这个的断言。标记用于突出显示“特殊”事件(如果愿意,可以进行筛选),而不是“切片”。例如,可以基于特定用户进行切片,但可以基于任何意外异常进行筛选。在这种情况下,您可以创建 用户 MDC维度和 意外例外 标记。 但这显然不能解决你心中的问题。你“指的是一个人如何一致地使用标记来设置日志记录的更一般的级别。”所以让我们来说明一下: MDC用于 交叉分析 ,标记用于 过滤 . 这些活动在测试和生产过程中进行 . 因此,当测试/生产开始时,您需要决定哪些维度可能有助于对日志数据进行切片,哪些情况下可能有助于对其进行筛选。 每个维度都有一个MDC维度。每个案例都有一个标记。 就这么简单。 开发者不需要在这里做任何决定。 一个人或一个团队应该决定, 设计时 ,需要支持什么样的切片、切割和过滤。这应该通过想象一个人期望他们执行什么样的分析任务来告知。 同一个人或团队应该决定命名约定。 完全是武断的 . 选择一些美观的, 自描述的 (最重要的),并且足够具体,不可能与以后的添加相冲突。连字符 与。 下划线是非常挑剔和令人担忧的一点,但请注意,它可能不那么混乱的ESL员工阅读下划线(至少相比于CamelCase);同时,据报道,这惹恼了一些开发人员,因为尴尬地达到了必要的关键。 就决定一项政策而言,这意味着 定义在哪些情况下需要使用给定的标记或MDC维度 . 保持这一点(集中,深思熟虑),但是如果开发人员觉得维度和标记集不足以完成手头的任务,则允许他们提供反馈。根据需要修改/添加尺寸和/或属性。 明白 这项政策几乎必然是针对具体项目的 . 不是每个项目都需要相同的日志分析。想象一些噩梦场景。然后想象一下您希望如何能够分析该场景中的日志。您可能不想编写复杂的脚本来尝试跟踪哪个消息属于哪个上下文,哪个状态在哪个时间,对吧?把这些必要的信息编码成维度和标记,如果出了问题,可以省去一些麻烦。 |
|
|
2
72
首先,MDC。 在一个只有一个“实体”与某些行为相关联的环境中,MDC非常有用。一个典型的例子:用户与web应用程序交互。所以,假设你有很多用户在使用你的web应用。使用MDC,您可以轻松地跟踪它们,而无需太多麻烦。简化示例:
这里,您在两个地方使用MDC:用户名和会话ID。这样,您就可以轻松地对一个用户的会话进行grep,查看他们一直在做的所有事情。 第二,标记。 标记通常用于“特殊”情况,例如向管理员发送电子邮件以发现一些严重的关键错误。并非所有的错误都属于同一类;有些错误必须以适当的方式处理。 或者,当用户退出您的服务时,它通常会转到一个信息日志,但如果您希望此类事件进入单独的日志文件中,则也可以为此类实例使用标记,这样您可以更容易地监视它,以便统计收集退出的用户。 经验法则:
|
|
|
3
30
标记可用于 颜色 或标记a 单一的 日志语句。你如何处理这些颜色,即标记,完全取决于你。然而,对于标记的使用,两种模式似乎很常见(第一种比第二种更常见)。
|
|
|
4
7
作为一个附录,如果您使用logstash并启用了json日志记录,那么还有一个潜在的Marker用途——用于记录与特定日志消息相关联的变量。这比在消息体中包含它更一致,更容易解析。非常有用,如果它适合您的用例的话。 请参见此处的详细信息: https://github.com/logstash/logstash-logback-encoder#loggingevent_custom_event |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |