2016-11-30 15:43:09.3060调试20 Company.Product.LoggerDataFilter [UOW:583ee57782fe0140c6dfbfd8] [DP:0]正在创建 用于记录器的DeviceDataTransformationRequest [d:4E3239200C5032593D004100]。
%{TIMESTAMP_ISO8601:timestamp}%{LOGLEVEL:loglevel} \ s +%{INT:threadId} %{DATA:loggerName}%{UOW}%{DATAPACKET}%{GREEDYDATA:message} %{DEVICEID}
输出是
{
"timestamp": [
"2016-11-30 15:43:09.3060"
],
"loglevel": [
"DEBUG"
],
"threadId": [
"20"
],
"loggerName": [
"Tts.IoT.DataLogger.Etl.Core.Filters.LoggerDataFilter"
],
"correlationId": [
"583ee57782fe0140c6dfbfd8"
],
"datapacket": [
"0"
],
"message": [
"Creating DeviceDataTransformationRequest for logger"
],
"deviceId": [
"4E3239200C5032593D004100"
]
}
哪个好 - 除了 - 消息现在缺少我提取的DEVICEID属性。 我想要它们 - 作为一个单独的字段并仍然保留在消息中。
你能做到吗?
(旁注...在这方面,像serilog这样的结构化日志如何帮助?)
答案 0 :(得分:0)
尝试改变它怎么样
%{GREEDYDATA:message}%{DEVICEID}
到
%{GREEDYDATA:testmessage} %{DEVICEID}
然后添加一个字段
mutate {
add_field => {
"message" => "%{testmessage} %{DEVICEID}"
}
remove_field => ["testmessage"]
}