生活随笔
收集整理的這篇文章主要介紹了
牛客网项目——前置技术(四):项目调试技巧
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 響應狀態碼的含義
- 2. 服務端斷點調試技巧
- 3. 客戶端斷點調試技巧
- 4. 設置日志級別,并將日志輸出到不同的終端
- 4.1 test下創建LoggerTests
- 4.2 配置文件
- 4.3 把日志打到文件
1. 響應狀態碼的含義
1.1 官方網站
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status
信息響應 (100–199)成功響應 (200–299)重定向消息 (300–399)客戶端錯誤響應 (400–499)服務端錯誤響應 (500–599)
1.2 常見返回碼
200:成功響應。302:重定向。如:注冊成功后重定向到新頁面
404:服務器找不到請求的資源。500:服務器遇到了不知道如何處理的情況。
2. 服務端斷點調試技巧
在想調試的地方打斷點
兩種方法進入debug調試
F8:讓程序向下執行一行
F7:進入當前方法內部
F9:向下執行完畢,或到下一個斷點
左下角斷點管理
3. 客戶端斷點調試技巧
在“發布”上打斷點
F10:向下執行一行F11:進入方法內部F8:下一個斷點或執行完畢
4. 設置日志級別,并將日志輸出到不同的終端
https://logback.qos.ch/
如:啟用info級,info及以上信息才會記錄顯示
4.1 test下創建LoggerTests
package com.nowcoder.community;import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;@RunWith(SpringRunner.class)
@SpringBootTest
@ContextConfiguration(classes
= CommunityApplication.class)
public class LoggerTests {private static final Logger logger
= LoggerFactory.getLogger(LoggerTests.class);@Testpublic void testLogger() {System.out
.println(logger
.getName());logger
.debug("debug log");logger
.info("info log");logger
.warn("warn log");logger
.error("error log");}}
4.2 配置文件
Properties設置級別改成debug
#logging.level.com.nowcoder.community=debug
debug及以上都輸出
4.3 把日志打到文件
設置文件路徑
#logging.file=d:/work/data/nowcoder/community.log
logback-spring.xml
可以的地方:路徑,包名,日志大小
<?xml version="1.0" encoding="UTF-8"?>
<configuration><contextName>community
</contextName><property name="LOG_PATH" value="D:/work/data"/><property name="APPDIR" value="community"/><appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_PATH}/${APPDIR}/log_error.log
</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_PATH}/${APPDIR}/error/log-error-%d{yyyy-MM-dd}.%i.log
</fileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>5MB
</maxFileSize></timeBasedFileNamingAndTriggeringPolicy><maxHistory>30
</maxHistory></rollingPolicy><append>true
</append><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>%d %level [%thread] %logger{10} [%file:%line] %msg%n
</pattern><charset>utf-8
</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>error
</level><onMatch>ACCEPT
</onMatch><onMismatch>DENY
</onMismatch></filter></appender><appender name="FILE_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_PATH}/${APPDIR}/log_warn.log
</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_PATH}/${APPDIR}/warn/log-warn-%d{yyyy-MM-dd}.%i.log
</fileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>5MB
</maxFileSize></timeBasedFileNamingAndTriggeringPolicy><maxHistory>30
</maxHistory></rollingPolicy><append>true
</append><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>%d %level [%thread] %logger{10} [%file:%line] %msg%n
</pattern><charset>utf-8
</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>warn
</level><onMatch>ACCEPT
</onMatch><onMismatch>DENY
</onMismatch></filter></appender><appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_PATH}/${APPDIR}/log_info.log
</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_PATH}/${APPDIR}/info/log-info-%d{yyyy-MM-dd}.%i.log
</fileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>5MB
</maxFileSize></timeBasedFileNamingAndTriggeringPolicy><maxHistory>30
</maxHistory></rollingPolicy><append>true
</append><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>%d %level [%thread] %logger{10} [%file:%line] %msg%n
</pattern><charset>utf-8
</charset></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>info
</level><onMatch>ACCEPT
</onMatch><onMismatch>DENY
</onMismatch></filter></appender><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d %level [%thread] %logger{10} [%file:%line] %msg%n
</pattern><charset>utf-8
</charset></encoder><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>debug
</level></filter></appender><logger name="com.nowcoder.community" level="debug"/><root level="info"><appender-ref ref="FILE_ERROR"/><appender-ref ref="FILE_WARN"/><appender-ref ref="FILE_INFO"/><appender-ref ref="STDOUT"/></root></configuration>
總結
以上是生活随笔為你收集整理的牛客网项目——前置技术(四):项目调试技巧的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。