Em Spring Boot, tentei usar o Log4J para Logstash e adicionar o arquivo log4j.properties no diretório SRC/Main/Recursos para personalizar o arquivo de log de saída, mas ele falhou. Configurando o caminho de registro no aplicativo.YML A impressão de log foi impressa com sucesso, mas o log de arquivos de log não foi depurado com sucesso. Eu verifiquei as informações on -line e disse que a inicialização da primavera usa logback para gravar logs por padrão. Após muitas tentativas, o Log4J falhou, então ele mudou para registrar o registro e o teste final foi bem -sucedido.
1. Você tem alguma dúvida sobre o caminho do arquivo de log de inicialização da primavera?
O Logging.Path e o Logging.File Properties estão configurados ao mesmo tempo, como segue:
Registro: Caminho: /VAR /Arquivo de log: test.log
Somente o arquivo test.log será gerado no caminho raiz do projeto e o arquivo de log não será gerado no caminho especificado (o caminho de log esperado é: logging.path + logging.file).
Motivo: na inicialização da primavera, você só precisa configurar uma das duas propriedades: logging.path e logging.File. Se configurado ao mesmo tempo, use o atributo logging.File.
Quando a propriedade Loggin.Path estiver configurada, o arquivo spring.log será gerado neste caminho, ou seja, o nome do arquivo de log padrão Spring.log é usado neste momento.
Quando a propriedade Loggin.File é configurada, um arquivo de log com o nome especificado é gerado no caminho especificado. O padrão é o caminho relativo do projeto e você pode especificar um caminho absoluto para o log.File.
registro:
Caminho:/var/logs # gerar arquivo spring.log in/var/logs Arquivo de diretório: /var/logs/test.log # gerar test.log arquivo in/var/logs diretório
2. Razões para o logback substituir o log4j:
Aqui estão trechos da Internet:
Logback e Log4J são muito semelhantes. Se você estiver familiarizado com o Log4J, o Logback será muito fácil de se acostumar. A seguir, são apresentadas algumas vantagens de logback sobre o log4j:
1. O kernel que implementa o logback mais rápido foi reescrito e o desempenho é aprimorado em mais de 10 vezes em alguns caminhos importantes de execução. Além disso, o logback não apenas melhora o desempenho, mas também carrega a memória inicial.
2. Logback de teste muito suficiente após vários anos, inúmeras horas de teste. Os testes de Logback são completamente diferentes. No ponto de vista do autor, é simplesmente importante escolher o Logback em vez de Log4J.
3. A Logback-Classic implementa SLF4J muito naturalmente. Iplementos de logback-clássico SLF4J. Ao usar o SLF4J, você não pode nem se sentir clássico de logback. E porque o Logback-Classic implementa muito o SLF4J, a mudança para o LOG4J ou outro é muito fácil. Não há problema em fornecer -o em outro pacote JAR, e não há necessidade de tocar o código implementado através do SLF4JAPI.
4. Documentos muito suficientes, o site oficial tem mais de 200 páginas de documentos.
5. Recarregue automaticamente o arquivo de configuração. Quando o arquivo de configuração é modificado, o Logback-Classic pode recarregar automaticamente o arquivo de configuração. O processo de varredura é rápido e seguro, e não requer que outro thread de varredura seja criado. Essa tecnologia garante totalmente que o aplicativo possa funcionar alegremente no ambiente JEE.
6. Lilith, Lilith é o observador de eventos de log, semelhante à motosserra Log4J. Lilith também pode processar grandes quantidades de dados de log.
7. Modo de cuidado e recuperação muito amigável. No modo de cautela, várias instâncias de FilePpender são executadas em vários JVMs e podem gravar com segurança o mesmo arquivo de log. O RollingFileAppender terá algumas limitações. O FileAppender da Logback e suas subclasses, incluindo o RollingFilePpender, podem se recuperar de exceções de E/S muito amigáveis.
8. Os arquivos de configuração podem lidar com diferentes situações. Os desenvolvedores geralmente precisam julgar que diferentes arquivos de configuração de logback estão em diferentes ambientes (desenvolvimento, teste, produção). E esses arquivos de configuração são apenas um pouco diferentes e podem ser implementados e para que um arquivo de configuração possa se adaptar a vários ambientes.
9. Os filtros, às vezes, precisam diagnosticar um problema e registrá -lo. No log4j, o nível de log só pode ser reduzido, mas isso produzirá um grande número de logs e afetará o desempenho do aplicativo. No logback, você pode continuar mantendo esse nível de log e eliminar algumas situações especiais. Por exemplo, o usuário que está conectado, seu log será atingido no nível de depuração e outros usuários podem continuar sendo atingidos no nível de aviso. Para implementar essa função, apenas 4 linhas de configuração XML são necessárias. Você pode se referir ao MDCFilter.
10. SiftingAppender (um appender muito multifuncional), pode ser usado para dividir os arquivos de log com base em qualquer parâmetros de execução. Por exemplo, o SiftingAppender pode distinguir eventos de log do acompanhamento da sessão do usuário e, em seguida, cada usuário terá um arquivo de log.
11. Compacte automaticamente o log que foi impresso. Quando um novo arquivo é gerado, o arquivo de log que foi impresso será compactado automaticamente. A compactação é um processo assíncrono; portanto, mesmo para grandes arquivos de log, os aplicativos não serão afetados no processo de compactação.
12. A árvore da pilha tem uma versão do pacote. O Logback trará os dados do pacote quando forem publicados.
13. Remova automaticamente os arquivos de log antigos. Ao definir a propriedade Maxhistory do TimeBasedRollingPolicy ou SizeAndTimeBasedFnatp, você pode controlar o número máximo de arquivos de log que foram gerados. Se o MaxHistory 12 estiver definido, esses arquivos de log que foram mais de 12 meses serão removidos automaticamente.
Em resumo, o logback é melhor que o log4j. Vamos criar todos os nossos aplicativos no Logback!
3. Introduzir logback no projeto
Adicionar dependências de pacotes, estilo maven:
<Depencency> <PuerpId> org.springframework.boot </groupid> <TRATIFACTID> Spring-boot-starter-logging </ArtifactId> </dependency> <pendesency> <purstashid> net.logstash.logback </groupid> <tifactid> logstash-logback-encoder </sersthIftiftIf </siperFack </siperFack> </siperShem-serSherf.E dependência </GroupShorgback> <sussherf.sersash.logback </groupid> <susshing> <sussherf>) <GrupidId> net.logstash.log4j </groupiD> <TRARFACTID> JSONEVENVENT-LAYOUT </ArtifactId> <Versão> 1.7 </sipers> </dependency>
4. Adicione logback.xml
Adicione o arquivo logback.xml ao diretório SRC/Main/Recursos, e o sistema carregará automaticamente a configuração logback.xml.
logback.xml:
<? xml versão = "1.0" coding = "utf-8"?> <Configuration scan = "true" scanPeriod = "60 segundos" debug = "false"> <incluir recursos = "org/springframework/boot/logging/logback/base.xml"/> <ContextName> Logback </ContextName>) <! value = "e: //test//logback.log"/>-> <propriedades name = "log.path" value = "/usuários/chang/desktop/chlogs/logback.log"/> <names name = "stash"> <desting> 192.168.220.83:9601 </destino> <coder> <coder> <coder> <coder> <coder> <coder> 192.168.220.83:9601 </destino> <coder> name = "console"> <!-<filter> <velee> Erro </nível> </ftrids>-> <boder> <dattern> %d {hh: mm: ss.ss} %contextName [ %thread] %-5Level) <! <File> $ {log.path} </file> <rollingpolicy> <fileNamepattern> logback. %d {yyyy-mm-dd} .log </filenamepattern> </rollingpolicy> <coder> <dattern> %d {hh: mm: ss.ssssSs} %msg %n </stardy> </ncoder> </pepnder> <root nível = "info"> <appender-ref ref = "stash"/> <appender-ref ref = "console"/> <ppender-ref ref = "file"/> </root> <!-Logback é um pacote em java <logger. "COM.DO.DUD" Classe <Logger name = "com.dudu.controller.learnController" nível = "warn" adição = "false"> <appender-ref ref = "console"/> </logger>-> </figuration>5. Problema de versão do Oncoder Logstash-Logback
No Spring-Boot, se você usar o Logstash-Logback-Encoder, pode ser necessário informar ao MAVEN o número de versão específico para evitar conflitos de dependência de pacotes. Por exemplo, você pode definir as dependências do núcleo de logback, Logback-Classic e acesso de logback como o seguinte:
<Properts> <Ch.Qos.Logback.version> 1.2.3 </ch.qos.logback.version> </sperties> <pendencyManagement> <pendências> <pendency> <puidid> ch.qos.logback </foupid> <TifactId> Logback-Core </tutifactId> <versão $ {CHERID> <Depencency> <GroupId> ch.qos.logback </proupId> <TROTIFACTID> logback-Classic </ArtifactId> <versão> $ {ch.qos.logback.version} </version> </dependency> <pendency> <voundid> ch.qos.logback </groupid> <stactId> lipencack> <voundid> ch.qos.Logback </Groupid> <stactId> LIGBLET- LIGBLE- LIGBLE- LIGBLE-LIGBLE-LIGBLE-LIGBLE-LIGBLE-LIGBLE-LIGBLE- <versão> $ {ch.qos.logback.version} </version> </dependency> </dependency> </dependencyManagement>6. Construção de serviços de logstash
Consulte:
1.Coder-Logback-Encoder
Resumir
O acima é o método de usar logback, logstash e alces para gravar arquivos de log na bota da primavera introduzida em você. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!