0

ログメッセージをjson形式で受け取りたいです。また、スペースで始まるログ (同じメールでスタック トレースを送信するため) を以前に見つかったログとマージする必要もあります。

公式サイトのドキュメントによると、最初のジョブで必要なコーデックは「json」です。そして 2 番目のジョブでは、必要なコーデックは「マルチライン」です。

両方のジョブを同時に実行するにはどうすればよいですか?

これがログの例です

2014-06-17 14:47:22,490 DEBUG [-] com.tigerit.evr.util.EvrAuthManager (EvrAuthManager.java:61) - User details are good and ready to go

そして、これがスタックトレースの例です-

com.bea.core.repackaged.springframework.beans.factory.BeanCreationException: Dependency injection failure: can't find the bean definition about class interface javax.jms.Queue; nested exception is com.bea.core.repackaged.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [javax.jms.Queue] is defined: No beans of type javax.jms.Queue; owner=com.bea.core.repackaged.springframework.context.support.GenericApplicationContext@1364679d: display name [com.bea.core.repackaged.springframework.context.support.GenericApplicationContext@1364679d]; startup date [Wed Jun 18 10:10:36 BDT 2014]; parent: com.bea.core.repackaged.springframework.context.support.GenericApplicationContext@61932006

        at com.bea.core.repackaged.springframework.jee.inject.Jsr250Metadata.applyInjections(Jsr250Metadata.java:244)

        at com.bea.core.repackaged.springframework.jee.inject.Jsr250Metadata.inject(Jsr250Metadata.java:226)

        at com.bea.core.repackaged.springframework.jee.spi.EjbComponentCreatorBrokerImpl.injection(EjbComponentCreatorBrokerImpl.java:112)

        at com.bea.core.repackaged.springframework.jee.spi.EjbComponentCreatorBrokerImpl.getBean(EjbComponentCreatorBrokerImpl.java:70)

        at weblogic.ejb.container.injection.EjbComponentCreatorImpl.getBean(EjbComponentCreatorImpl.java:68)

        at weblogic.ejb.container.manager.BaseEJBManager.createNewBeanInstance(BaseEJBManager.java:216)

「at」で始まる行を追加して、前のログ メッセージとマージしたいと考えています。

4

1 に答える 1

1

特定の入力に対して複数のフィルターを使用できます。たとえば、ドキュメントの例のように入力に複数行のコードを使用して、スタック トレースの行をマージできます。

input {
  stdin {
    codec => multiline {
      pattern => "^\s"
      what => "previous"
    }
  }
}

その後、構成ファイルで次のようなことができます

filter {
    if [message] =~ /^{.*}$/ {
        json { source => message }
    }
}

そのため、中かっこで開始/終了する行を取得した場合、その行を json として扱うことができます。

于 2014-06-18T16:14:50.160 に答える