Swagger 本身不提供日志記錄功能,需借助應用程序框架或第三方庫實現,以下是 Linux 環境下的常見方案:
使用中間件記錄請求/響應
morgan 中間件記錄 HTTP 請求日志到文件,支持自定義格式(如 combined 格式)。const morgan = require('morgan');
app.use(morgan('combined', { stream: fs.createWriteStream('access.log', { flags: 'a' }) }));
Flask-Swagger 結合 loguru 或 logging 庫,在請求前后記錄日志。from flask import request
import loguru
logger = loguru.logger.add("api.log", rotation="500 MB")
@app.before_request
def log_request():
logger.info(f"{request.method} {request.url}")
集成日志框架
<!-- log4net.Config 示例 -->
<log4net>
<appender name="rollingAppender" type="log4net.Appender.RollingFileAppender">
<file value="logs/swagger.log" />
<rollingStyle value="Composite" />
<datePattern value="yyyyMMdd" />
</appender>
<root>
<level value="ALL" />
<appender-ref ref="rollingAppender" />
</root>
</log4net>
借助系統工具管理日志
journalctl -u 服務名 查看日志,支持過濾和實時跟蹤。# 示例配置 /etc/logrotate.d/swagger
/var/log/swagger/*.log {
daily rotate 7 compress missingok
}
結構化日志與分析
注意:具體實現需根據使用的編程語言和框架調整,優先選擇與項目技術棧兼容的日志方案,并定期清理或歸檔日志文件。