在Ubuntu上实现Swagger API日志记录可以通过以下几种方法:
sudo apt-get install logrotate
swagger-editor.conf
的文件:sudo vi /etc/logrotate.d/swagger-editor
内容示例:/var/log/swagger-editor/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0644 root root
}
这个配置表示每天分割 /var/log/swagger-editor/
目录下的 .log
文件,保留最近 7 天的日志文件,并对旧的日志文件进行压缩。sudo logrotate -d /etc/logrotate.d/swagger-editor # 测试配置文件是否有错误
sudo logrotate -f /etc/logrotate.d/swagger-editor # 强制旋转日志文件
sudo logrotate /etc/logrotate.d/swagger-editor
journalctl -u swagger-editor
这将显示与 swagger-editor
相关的系统日志。sudo journalctl --vacuum-time=1w
只保留指定大小的日志:sudo journalctl --vacuum-size=500M
sudo vi /usr/local/bin/clean-swagger-logs.sh
内容示例:#!/bin/bash
find /var/log/swagger-editor/ -mtime 7 | xargs rm -rf
sudo chmod +x /usr/local/bin/clean-swagger-logs.sh
crontab
文件:crontab -e
添加以下行以每天清理日志:0 0 * * * /usr/local/bin/clean-swagger-logs.sh
npm install -g swagger-jsdoc
swagger.json
或 swagger.yaml
文件,定义你的API的元数据。npm install swagger-ui-express
在你的Express应用中使用Swagger UI:const express = require('express');
const swaggerUi = require('swagger-ui-express');
const swaggerDocument = require('./swagger.json');
const app = express();
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
morgan
中间件来记录HTTP请求:npm install morgan
在Express应用中使用 morgan
:const morgan = require('morgan');
app.use(morgan('combined'));
根据你的日志记录配置,你可以在终端、文件或其他日志管理系统中查看API日志。通过以上方法,你可以在Ubuntu上有效地管理Swagger相关的日志文件,确保系统的稳定运行和问题的快速排查。