温馨提示×

Ubuntu Swagger如何实现API日志记录

小樊
64
2025-05-01 12:59:45
栏目: 智能运维

在Ubuntu上实现Swagger API日志记录可以通过以下几种方法:

使用logrotate管理日志

  • 安装logrotate(如果尚未安装):
    sudo apt-get install logrotate
    
  • 配置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  # 强制旋转日志文件
    
  • 手动运行logrotate
    sudo logrotate /etc/logrotate.d/swagger-editor
    

使用Systemd管理日志

  • 查看日志
    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
    

集成Swagger到你的应用并记录日志

  1. 安装Swagger
    npm install -g swagger-jsdoc
    
  2. 配置Swagger: 创建一个 swagger.jsonswagger.yaml 文件,定义你的API的元数据。
  3. 集成Swagger到你的应用: 例如,使用Node.js和Express:
    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');
    });
    
  4. 日志记录: Swagger本身不提供日志记录功能,但你可以使用你的应用程序框架或第三方库来记录API请求和响应。例如,在Node.js中,你可以使用 morgan 中间件来记录HTTP请求:
    npm install morgan
    
    在Express应用中使用 morgan
    const morgan = require('morgan');
    app.use(morgan('combined'));
    
    根据你的日志记录配置,你可以在终端、文件或其他日志管理系统中查看API日志。

通过以上方法,你可以在Ubuntu上有效地管理Swagger相关的日志文件,确保系统的稳定运行和问题的快速排查。

0