0

行番号が固定されていない一連のログがあります。これらのログを nxlog を介して Elasticsearch に取得しようとしています。

     ------------------------------------------------------
    Timestamp: 2020-03-03 00:05:04Z|User -DEFAULT|Cart -DEFAULT|Source -mscorlib|Message -StartIndex cannot be less than zero
     ------------------------------------------------------
     ------------------------------------------------------    
    Timestamp: 2020-03-03 03:05:53Z|User -Simulate Pricing | Initiate | |Cart -|Level -INFO|Severity -Information|Class -SalesOrderClient.vb|Function - Simulate(testVal As Object) Method :| Cart_ID: 8092662

    Timestamp: 2020-03-03 00:00:30Z|User -|Cart -|Source -mscorlib|Message -Thread was being aborted.|StackTrace - at System.Threading.Thread.AbortInternal()
        at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
        at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
        at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.SendRequest(Message message, TimeSpan timeout)
        at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
     ------------------------------------------------------
     ------------------------------------------------------

    Timestamp: 2020-03-03 00:18:57Z|User -DEFAULT|Cart -DEFAULT|Source -mscorlib|Message -StartIndex cannot be less than zero.

     ------------------------------------------------------

これには、複数回線 (固定回線なし) のログと単一回線のログがいくつかあります。nxlog を使用してこのデータを取得しようとすると、3 番目のログが、存在する新しい行ごとに 4 つの異なる行に分割されます。

この問題を回避するにはどうすればよいですか。ここで使用できる正規表現は何ですか? 行数に関係なく、1 つの完全なログを 1 つの行に配置したいと考えています。行はログに存在します。

前もって感謝します。

4

1 に答える 1

2

タイムスタンプに一致するモジュールでHeaderLine正規表現を使用します。https://nxlog.co/documentation/nxlog-user-guide/xm_multiline.html の例を参照してください。xm_multiline

于 2020-03-04T22:27:49.530 に答える