如何使用slf4j和logback导入用于Scala中的结构化日志记录的StructuredArgument

问题描述

这可能是一个愚蠢的问题,但是我的scala知识有点缺乏。我正在尝试在Scala中实现结构化日志记录,而我们正在使用slf4j / logback / logstash。我遇到了以下帖子:How does SLF4J support structured logging描述了如何做:

import static net.logstash.logback.argument.StructuredArguments.*;

/*
 * Add "name":"value" ONLY to the JSON output.
 *
 * Since there is no parameter for the argument,* the formatted message will NOT contain the key/value.
 *
 * If this looks funny to you or to static analyzers,* consider using Markers instead.
 */
logger.info("log message",keyvalue("name","value"));

显然这是Java代码,而不是scala。我已经对其进行了转换,但是找不到net.logstash.logback.argument.StructuredArguments.keyvalue。我猜这是因为它没有包含在构建中,但这是我绊倒的地方。

我正在使用sbt,并且包括了我期望该软件包的内容

"net.logstash.logback" %% "logstash-logback-encoder" % VersionOf.`logstash`

但是sbt无法找到该软件包(版本为1.2.1)。还令我困惑的是,我们其他的logback依赖项是从组ID ch.qos.logback中提取的。我真的不太了解ch.qos.logback是什么,为什么它与net.logstash.logback不同。

长话短说,我需要使用sbt导入什么程序包,以便可以使用StructuredArguments / keyvalues进行日志记录?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...