Sejujurnya, saya hanya mempunyai pemahaman yang cetek tentang log saya akan menggunakan logger.info dan logger.error hari ini semasa saya menulis LemonRobot projek, saya memutuskan Cetak maklumat penyahpepijatan juga, dan kemudian mengawal tahap log supaya log tahap nyahpepijat tidak dipaparkan apabila pergi dalam talian.
Tetapi selepas menjalankannya, saya mendapati bahawa log yang dijana oleh logger.debug lalai tidak dikeluarkan ke konsol Selepas beberapa penyelidikan, ia disebabkan oleh isu konfigurasi log balik.
Buat logback.xml baharu dalam folder sr/main/resources, dan kemudian salin konfigurasi berikut ke dalam fail:
logback.xml akan dimuatkan secara automatik jika nama berbeza , kita perlu Konfigurasikan dalam application.yml atau application.properties:
#配置日志 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>
Fail konfigurasi ini membenarkan log dioutputkan ke konsol dan fail setempat pada masa yang sama, dan fail log dimampatkan ke dalam pakej zip.
Jika projek dalam talian pada masa ini, tidak perlu log nyahpepijat Anda hanya perlu menukar tahap di bawah teg akar kepada INFO.
Pustaka Tomcat Native tidak ditemui menggunakan nama [tcnative-1, libtcnative-1]
tomcat tidak menemui perpustakaan pautan dinamik JNI. Terdapat dll ini di bawah Apache Tomcat, tetapi ia tidak ditemui di bawah Tomcat yang dibenamkan dalam Springboot semasa permulaan.
Ini kerana untuk meningkatkan prestasi, penyambung dalam Tomcat mengguna pakai kaedah memuatkan perpustakaan tempatan yang terikat pada sistem pengendalian (bukan platform silang), seperti perpustakaan pautan dinamik .dll dalam sistem Windows.
Dua fail pustaka .dll yang tidak ditemui dalam pengecualian di atas akan ditemui dalam direktori bin Tomcat secara lalai Namun, memandangkan Tomcat SpringBoot dibenamkan, tiada dua .dll ini.
Anda boleh mengabaikan ralat ini, jadi SpringBoot menetapkan tahap log ralat ini untuk nyahpepijat.
Jika anda mengalami gangguan obsesif-kompulsif, anda juga boleh menyelesaikannya seperti berikut:
Terus letakkan tcnative-1.dll dan libtcnative-1.dll di bawah tomcat di bawah C:WindowsSystem32 dan mulakan semula Projek sudah cukup.
Atas ialah kandungan terperinci Bagaimanakah Springboot membenarkan logger.debug untuk mengeluarkan log?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!