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
}
结构化日志与分析
注意:具体实现需根据使用的编程语言和框架调整,优先选择与项目技术栈兼容的日志方案,并定期清理或归档日志文件。