Java:使用Log4j2记录多个线程

时间:2017-08-21 09:40:31

标签: java multithreading sorting log4j2

假设我有三个类A,B和C在不同的线程(tA,tB和tC)中工作,并且它们都有自己的class A { public static final Logger LOGGER = LoggerFactory.getLogger(A.class); public void start() { LOGGER.info("TestA"); LOGGER.info("TestA"); LOGGER.info("TestA"); } } class B { public static final Logger LOGGER = LoggerFactory.getLogger(B.class); public void start() { LOGGER.info("TestB"); LOGGER.info("TestB"); LOGGER.info("TestB"); } } class A { public static final Logger LOGGER = LoggerFactory.getLogger(C.class); public void start() { LOGGER.info("TestC"); LOGGER.info("TestC"); LOGGER.info("TestC"); } } 实例。

现在我的输出搞得一团糟,因为这三个类的记录中没有顺序。是否有可能按照外观的顺序对记录进行排序?

例如:

TestA
TestA
TestB
TestB
TestA
TestC
TestC
TestB
TestC

输出:

TestA
TestA
TestA
TestB
TestB
TestB
TestC
TestC
TestC

我想要的是:

{
  "query": {
    "bool": {
      "must": {
        "bool": {
          "should": [
            {
              "constant_score": {
                "query": {
                  "query_string": {
                    "query": "http\\:\\/\\/example.sample.com\\/guide\\/Analyzers_Terms_and_Analysis_%28ABC%29_Guide",
                    "fields": [
                      "noteText"
                    ],
                    "analyzer": "match_phrase_search"
                  }
                },
                "boost": 5
              }
            },
            {
              "query_string": {
                "query": "http\\:\\/\\/example.sample.com\\/guide\\/Analyzers_Terms_and_Analysis_%28ABC%29_Guide",
                "fields": [
                  "noteText.ngrammed"
                ]
              }
            }
          ]
        }
      }
    }
  },
  "highlight": {
    "require_field_match": true,
    "fields": {
      "noteText": {},
      "noteText.ngrammed": {}
    },
    "fragment_size": 100,
    "number_of_fragments": 3
  }
}

1 个答案:

答案 0 :(得分:1)

由于日志记录是按时间定义的,因此尝试认为你可以实现类似的东西是没有意义的(当然,没有额外的工作)。

您可以做的是将thread ID添加到日志记录布局中。然后,您可以使用其他工具(例如grep)来隔离您希望查看的特定线程的日志记录,甚至可以按线程ID对日志进行排序,这将按顺序为每个线程提供日志。