Configuração de log padrão do Springboot
SpringBoot está fora da caixa e fornece a estrutura de registro por padrão, usando Commons Logging , mas a configuração padrão também fornece suporte para logs comuns, como: Java UTIL Logging, Log4J, Log4J2 e Logback. Cada madeireiro pode usar o console ou arquivo para produzir conteúdo de log através da configuração.
Saída do console
Em relação aos logs de log, os cinco primeiros níveis de log são níveis: de alto a baixo, ERROR , WARN , INFO , DEBUG e TRACE , o nível mais baixo produzirá informações de alto nível e o alto nível não produzirá informações de baixo nível. Por exemplo: se o nível estiver definido como ERROR , as informações de WARN , INFO e DEBUG não serão emitidas. No Springboot, os níveis ERROR , WARN e INFO são configurados por padrão para o console. Não existe um nível FATAL no logback, ele será tratado como um nível ERROR .
Podemos mudar para o nível de depuração de duas maneiras:
application.properties . Quando essa propriedade estiver definida como True, o Core Logger (incluindo contêineres incorporados, Hibernate e Spring) produzirá mais conteúdo, mas os logs que você aplicou por você mesmo não serão lançados no nível de depuração.Saída colorida
O Springboot suporta saída de log de cores desde a versão 1.4.0. Se o seu terminal suportar a ANSI, a configuração da saída de cores tornará o log mais legível. Suportado definindo o parâmetro spring.output.ansi.enabled no application.properties .
NEVER : desativar a saída ANSI-cor (item padrão)DETECT : verificará se o terminal suporta ANSI. Se sim, use saída de cor (item recomendado)ALWAYS : sempre use o formato ANSI-cor para produzir. Se o terminal não o suportar, haverá muitas informações de interferência. Não é recomendável usá -lo.Saída de arquivo
A configuração padrão do Springboot será emitida apenas para o console e não será gravada nos arquivos, mas geralmente precisamos gravar em arquivos ao usar o ambiente de produção.
Para aumentar a saída do arquivo, você precisa configurar logging.file ou logging.path no application.properties .
logging.file : Defina o arquivo, que pode ser um caminho absoluto ou um caminho relativo. Por exemplo: logging.file = my.loglogging.path : Configurando o diretório, o arquivo spring.log será criado neste diretório e o conteúdo do log será gravado, como: logging.path =/var/log/log/O arquivo de log será truncado no tamanho de 10 MB, resultando em novos arquivos de log. Os níveis padrão são: erro, aviso, informação
Controle de nível
No Springboot, você só precisa configurar o controle de nível da conclusão de login in application.properties .
Formato de configuração: logging.level.*= Nível
logging.level : Prefixo de controle de nível de log, * é o nome do pacote ou o nome do loggerLEVEL : Opções rastrear, depuração, informações, aviso, erro, fatal, desligadoPor exemplo:
DEBUG .WARNConfiguração de log personalizada
Se você não deseja usar a configuração padrão, basta adicionar seu próprio arquivo de configuração de log. Como os serviços de registro geralmente são inicializados antes da criação ApplicationContext , eles não precisam ser controlados pelo arquivo de configuração da Spring . Portanto, o controle e o gerenciamento de logs ainda podem ser bem suportados por meio de propriedades do sistema e arquivos de configuração externa de inicialização da mola tradicional.
Dependendo de diferentes sistemas de registro, você pode organizar o nome do arquivo de configuração de acordo com as seguintes regras e ele pode ser carregado corretamente:
Recomendações oficiais do Springboot para usar um nome de arquivo com -spring como sua configuração de log (como usar logback-spring.xml em vez de logback.xml)
Formato de saída personalizado
No Springboot, você pode controlar o formato de saída configurando os seguintes parâmetros no application.properties :
logging.pattern.console : define a saída de estilo no console (o JDK Logger não é suportado)logging.pattern.file : define o estilo de saída para o arquivo (o JDK Logger não é suportado)Esses formatos também podem ser definidos diretamente no arquivo de configuração de log, e não no arquivo de configuração do aplicativo.
Modelos de arquivo de configuração de logback comum
<? xml versão = "1.0" coding = "utf-8"?> <frifiguration> <!-Defina o endereço de armazenamento do arquivo de log e não use caminhos relativos na configuração do logback-> <nome da propriedade "Log_home" Value = "d:/logs"/> <!-Color Log dependency " converterclass = "org.springframework.boot.logging.logback.colorconverter"/> <ConversionRule conversionword = "wex" converterclass = "org.springframework.boot.logging.logback.whitespsacshrowableproxyconverter"/> <b na conversão.Logback.whitespacherswableproxyconverter "/> <b na conversão.logback. converterclass = "org.springframework.boot.logging.logback.extendedwhitespacethrowableproxyconverter"/> <!-Formato de log color-> <names name = "console_log_pattern" value "$ {console_log_pattern:-%clr (d) HH: MM: SS.SS}) {FAINT} %CLR ($ {LOG_LEVEL_PATTERN:- %5P}) %CLR ($ {pid:-}) {magenta} %CLR (-) {FAINT} %CLR ([ %15.15T]) {FAINT} %CLR ( %-40.40Logger {39}) {cyan} %clr (:) {Faint} %m %n $ {log_exception_conversion_word:- %wex}} "/> <!-console outputs-> <appender name =" console "> <ncoder> %-5LEvel: o nível exibe 5 caracteres da mensagem esquerda %msg: log, %n é um caractere de nova linha-> <!-<dattern> %d {yyyy-mm-dd hh: mm: ss.ss} [ %thread] %-5level %logger {36}- %msg %n </padronize <stind> <Charset> utf8 </charset> </coder> </appender> <!-gerar arquivos de log todos os dias-> <Appender name = "FILE"> <rollingPolicy> <!-Nome do arquivo em saída por arquivo de log-> <filenamepattern> $ {log_home} /mixedsys. </rollingpolicy> <coder> <dattern> %d {yyyy-mm-dd hh: mm: ss.ss} [ %thread] %-5level %logger {36}- %msg %n </storking> </coder> </appender> <!-nível de saída do logger (package.class)-Loger. name = "org.springframework.web.servlet.mvc.method.annotation.ExceptionHandleRexceptionResolver" Level = "Debug"> <Appender-ref ref = "Console" /> <ppender-ref ref = "file" /> < /logger> <gger name = "Org.rg.s. Hibernate sql-> <!-<name logger = "org.hibernate.type.descriptor.sql.basicbinder" nível ") <Logger name = "org.hibernate.engine.QueryParameters" Level = "Debug" /> <Nome do Logger = "org.hibernate.engine.query.hqlqueryplan" Level = "Debug" />-> <!-Nível de saída de log-> ROOTE = "Informações"> <!-Neste tempo,>-> Information-Nível de saída-Raiz) <Appender-ref ref = "arquivo"/> </root> <!-Faça login de forma assíncrona no banco de dados-> <!-<Appender name = "db"> registre assíncrono ao banco de dados <Cnectionsource> Pool de conexão </tainSource> <riveclass> com.mysql.jdbc.rivercriver </drivercl> <url> jdbc: mysql: //127.0.0.1: 3306/DatabaseName </url> <suser> root </suser> <dasty> root </fast> </dataSource> </nectionSource> </ppender> -> </figuration>O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.