开发者社区 > 云存储 > 日志服务SLS > 正文

【阿里云-日志服务SLS】怎么自定义日志字段?或者 怎么对所有日志的message做一个增强?

我的目的是:将skywalking的tradeId打印到每条日志上。

目前是做了一个拦截器,将tradeId加入了log4j2中,使每条日志都会带上skywalking的tradeId。

问题是怎么将这个展示在阿里云的日志服务中呢?

展开
收起
1773609980594921 2022-11-24 14:36:31 1162 1
1 条回答
写回答
取消 提交回答
  • 全栈JAVA领域创作者

    您可以通过在阿里云的日志服务SLS中进行采集配置来自定义日志字段。具体步骤如下:

    登录阿里云控制台,进入日志服务SLS页面。 在左侧导航栏中选择“Logstore”,然后选择您要采集的Logstore。 点击“数据接入”选项卡,然后选择“日志taild”作为数据源类型。 点击“创建日志taild”,输入taild的名称和描述信息。 在“数据源配置”页面,选择“文本日志”作为数据源类型。 在“高级配置”选项卡中,在“提取规则”一栏中,添加一个新的规则。 在规则编辑器中,选择“正则表达式”作为提取方式,然后编写相应的正则表达式以匹配需要提取的字段。 在“字段提取”一栏中,添加一个新的字段,并指定该字段的名称、类型和对应的正则表达式。 点击“保存”按钮,即可完成数据采集配置。 这样配置后,您就可以在阿里云的日志服务SLS中看到您自定义的日志字段了。

    如果您要对所有日志的message做一个增强,可以使用SLS的日志处理功能。具体步骤如下:

    在左侧导航栏中选择“Logstore”,然后选择您要进行日志处理的Logstore。 点击“日志处理”选项卡,然后选择“提取与修改”作为处理方式。 在“高级配置”选项卡中,可以编写JavaScript脚本来对日志进行增强。例如,您可以使用以下代码将skywalking的tradeId添加到每条日志的message字段中: javascript function (event) { var tradeId = event.tradeId; if(tradeId) { event.message = "[" + tradeId + "]" + event.message; } return event; } 点击“保存”按钮,即可完成日志处理配置。 这样配置后,您就可以在阿里云的日志服务SLS中看到增强过的日志了。

    2023-04-16 21:48:52
    赞同 展开评论 打赏

日志服务 (Simple Log Service,简称 SLS) 是云原生观测分析平台,为 Log/Metric/Trace 等数据提供大规模、低成本、实时平台化服务。一站式提供数据采集、加工、分析、告警可视化与投递功能,全面提升研发、运维、运营和安全等场景数字化能力。

相关产品

  • 日志服务
  • 相关电子书

    更多
    PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
    Kubernetes下日志实时采集、存储与计算实践 立即下载
    日志数据采集与分析对接 立即下载