> Java > java지도 시간 > Springboot는 어떻게 logger.debug가 로그를 출력하도록 허용합니까?

Springboot는 어떻게 logger.debug가 로그를 출력하도록 허용합니까?

WBOY
풀어 주다: 2023-05-11 11:40:20
앞으로
1312명이 탐색했습니다.

Springboot를 사용하면 logger.debug에서 로그를 출력할 수 있습니다.

솔직히 저는 항상 로그에 대해 피상적으로만 이해했습니다. 오늘은 LemonRobot 프로젝트를 작성할 때 logger.info와 logger.error를 사용하기로 했습니다. 디버깅 정보도 입력하고 온라인 상태가 되면 로그 수준에 따라 디버그 수준 로그를 제어합니다.

그런데 실행해 보니 기본 logger.debug에서 생성된 로그가 콘솔에 출력되지 않는 것을 발견했습니다. 조사 결과 로그백 구성 문제 때문이었습니다.

sr/main/resources 폴더에 새 logback.xml을 생성한 후 다음 구성을 파일에 복사합니다.

logback.xml이 자동으로 로드되므로 이름이 다르면 애플리케이션에 추가해야 합니다. .yml 또는 애플리케이션 속성 구성:

#配置日志
logging:
#此处存放日志的路径
  path:
    config: classpath:config/logback-spring.xml
#指定不同目录下的日志的级别
  level:
    com.shimain.springboot.mapper: DEBUG
로그인 후 복사
<?xml version="1.0" encoding="UTF-8" ?>

<configuration scan="true" scanPeriod="3 seconds">
    <!--设置日志输出为控制台-->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%logger{32}] %msg%n</pattern>
        </encoder>
    </appender>
    <!--设置日志输出为文件-->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>logFile.log</File>
        <rollingPolicy  class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>logFile.%d{yyyy-MM-dd_HH-mm}.log.zip</FileNamePattern>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%d{HH:mm:ss,SSS} [%thread] %-5level %logger{32} - %msg%n</Pattern>
        </layout>
    </appender>
    <root>
        <level value="DEBUG"/>
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="FILE"/>
    </root>
</configuration>
로그인 후 복사

이 구성 파일을 사용하면 로그를 콘솔과 로컬 파일에 동시에 출력할 수 있으며 로그 파일은 zip 파일로 압축됩니다.

현재 프로젝트가 온라인 상태라면 디버그 로그가 필요하지 않습니다. 루트 태그 아래의 레벨을 INFO로 수정하기만 하면 됩니다.

SpringBoot 시작 디버그 수준 로그 오류

Tomcat 네이티브 라이브러리를 이름 [tcnative-1, libtcnative-1]을 사용하여 찾을 수 없습니다.

오류 스크린샷

Springboot는 어떻게 logger.debug가 로그를 출력하도록 허용합니까?

Reason

tomcat이 JNI 동적 링크를 찾지 못했습니다. 도서관. Apache Tomcat 아래에 이 dll이 있지만 시작 시 Springboot에 포함된 Tomcat 아래에서는 찾을 수 없습니다.

성능 향상을 위해 Tomcat의 커넥터는 Windows 시스템의 .dll 동적 링크 라이브러리와 같이 운영 체제에 바인딩된 로컬 라이브러리(크로스 플랫폼 아님)를 로드하는 방식을 채택하기 때문입니다.

위 예외에서 찾을 수 없는 두 개의 .dll 라이브러리 파일은 기본적으로 Tomcat의 bin 디렉터리에 있습니다. 그러나 SpringBoot의 Tomcat이 내장되어 있으므로 이 두 개의 .dll은 없습니다.

해결 방법

이 오류는 무시해도 됩니다. 따라서 SpringBoot이 오류의 로그 수준을 디버그로 설정하세요.

강박 장애가 있는 경우 다음과 같이 해결할 수도 있습니다.

C:WindowsSystem32 아래 tomcat 아래에 tcnative-1.dll 및 libtcnative-1.dll을 직접 넣고 프로젝트를 다시 시작합니다.

위 내용은 Springboot는 어떻게 logger.debug가 로그를 출력하도록 허용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿