Ao coletar logs, os logs devem ser do mesmo tipo. Se os logs forem de tipos diferentes, utilize as abordagens Schema-On-Write e Schema-On-Read para processar e coletar os logs.
Informações gerais
Logs Java são logs de programa que contêm informações normais e erros como exceções de stack. Os logs Java podem ser dos seguintes tipos:
Logs WARNING multilinha
Logs INFO de linha única
Logs DEBUG de chave-valor
[2018-10-01T10:30:31,000] [WARNING] java.lang.Exception: another exception happened
at TestPrintStackTrace.f(TestPrintStackTrace.java:3)
at TestPrintStackTrace.g(TestPrintStackTrace.java:7)
at TestPrintStackTrace.main(TestPrintStackTrace.java:16)
[2018-10-01T10:30:32,000] [INFO] info something
[2018-10-01T10:30:33,000] [DEBUG] key:value key2:value2Soluções
Schema-On-WriteCenário: Se você conhece os tipos de logs que deseja coletar e quer formatar os logs durante a coleta, utilize esta abordagem.
Descrição: Aplique várias configurações do Logtail aos logs que deseja coletar e especifique expressões regulares diferentes para cada configuração. Dessa forma, é possível coletar diferentes tipos de logs. Por padrão, apenas uma configuração do Logtail pode ser usada para coletar logs de um arquivo de log. Também é possível usar várias configurações do Logtail para coletar logs de um arquivo de log. Para mais informações, consulte Como coletar várias cópias de logs em um arquivo?
Schema-On-ReadCenário: Se você deseja analisar até dezenas de milhões de logs de diferentes tipos e formatar os logs durante a consulta e análise, utilize esta abordagem.
Descrição: Utilize uma expressão regular que corresponda aos campos comuns dos logs necessários.
Por exemplo, para coletar logs multilinha, especifique uma expressão regular com o timestamp e o nível dos logs para corresponder ao início da primeira linha de um log. O restante do log é incluído no campo message. Neste exemplo, especifique
[2018-10-01T10:30:32,000] [INFO]como a expressão regular; o valor do campo message éinfo something.Para analisar o conteúdo do campo message, crie um índice para o campo message e use uma expressão regular para extrair o conteúdo desejado. Para mais informações sobre como criar índices, consulte Criar índices. Para mais informações sobre extração baseada em expressões regulares, consulte e_regex.