日志查看指南.md 6.53 KB

日志查看指南

📍 日志位置

根据不同的启动方式,日志位置不同:

方式一:宝塔面板进程管理器(推荐)

如果使用宝塔面板的进程管理器启动应用:

  1. 登录宝塔面板软件商店进程管理器
  2. 找到你的应用进程(例如:DouyinLogistics.API
  3. 点击 日志 按钮查看实时日志

日志文件位置:

/www/server/panel/logs/

方式二:使用 systemd 服务

如果使用 systemd 启动(例如:/etc/systemd/system/douyin-api.service):

查看实时日志:

# 查看实时日志
journalctl -u douyin-api -f

# 查看最近100行日志
journalctl -u douyin-api -n 100

# 查看今天的日志
journalctl -u douyin-api --since today

# 查看指定时间的日志
journalctl -u douyin-api --since "2024-12-03 14:00:00" --until "2024-12-03 15:00:00"

查看日志文件:

# systemd 日志位置
/var/log/journal/

方式三:直接运行 dotnet 命令

如果直接在终端运行:

dotnet DouyinLogistics.API.dll --urls http://127.0.0.1:5000

日志输出位置:

  • 直接输出到控制台(终端)
  • 如果重定向到文件,日志在重定向的文件中

示例(重定向到文件):

# 启动并重定向日志到文件
dotnet DouyinLogistics.API.dll --urls http://127.0.0.1:5000 > /www/wwwroot/douyin-api/logs/app.log 2>&1 &

# 查看日志
tail -f /www/wwwroot/douyin-api/logs/app.log

方式四:使用 Supervisor

如果使用 Supervisor 管理进程:

查看日志:

# 查看 Supervisor 日志
tail -f /var/log/supervisor/douyin-api.log

# 或者查看 Supervisor 配置的日志文件位置
cat /etc/supervisor/conf.d/douyin-api.conf | grep stdout_logfile

🔍 关键日志搜索

查看发货相关日志

# 搜索发货成功日志
grep "发货成功\|✅.*发货" /path/to/logs

# 搜索发货失败日志
grep "发货失败\|❌.*发货" /path/to/logs

# 搜索发货接口响应
grep "抖音发货接口响应" /path/to/logs

# 搜索发货请求参数
grep "发货请求参数" /path/to/logs

查看创建运单相关日志

# 搜索创建运单日志
grep "创建运单\|logistics.newCreateOrder" /path/to/logs

# 搜索运单创建响应
grep "抖音创建运单响应" /path/to/logs

查看错误日志

# 搜索所有错误日志
grep -i "error\|exception\|失败" /path/to/logs

# 搜索特定订单的错误
grep "OrderId=你的订单ID" /path/to/logs

📋 常用日志查看命令

实时查看日志(推荐)

# 方式一:使用 tail -f(如果日志在文件中)
tail -f /path/to/logs/app.log

# 方式二:使用 journalctl -f(如果使用 systemd)
journalctl -u douyin-api -f

# 方式三:使用 less +F(可以上下滚动)
less +F /path/to/logs/app.log
# 按 Ctrl+C 退出实时查看,按 F 重新进入实时查看

查看最近的日志

# 查看最后100行
tail -n 100 /path/to/logs/app.log

# 查看最后1000行并实时更新
tail -n 1000 -f /path/to/logs/app.log

搜索特定内容

# 搜索包含"发货"的日志
grep "发货" /path/to/logs/app.log

# 搜索包含"发货"的日志(显示前后5行上下文)
grep -C 5 "发货" /path/to/logs/app.log

# 搜索包含"发货"的日志(不区分大小写)
grep -i "发货" /path/to/logs/app.log

# 搜索多个关键词
grep -E "发货成功|发货失败" /path/to/logs/app.log

按时间筛选日志

# 查看今天的日志(如果日志文件按日期命名)
cat /path/to/logs/app-$(date +%Y-%m-%d).log

# 使用 journalctl 按时间筛选
journalctl -u douyin-api --since "1 hour ago"
journalctl -u douyin-api --since "2024-12-03 14:00:00" --until "2024-12-03 15:00:00"

🎯 快速排查问题

1. 查看发货是否成功

# 搜索最近的发货日志
grep "发货成功\|发货失败" /path/to/logs | tail -20

2. 查看发货接口的错误信息

# 查看发货接口的响应
grep -A 10 "抖音发货接口响应" /path/to/logs | tail -50

3. 查看特定订单的完整日志

# 替换 YOUR_ORDER_ID 为实际订单ID
grep "YOUR_ORDER_ID" /path/to/logs

4. 查看错误堆栈

# 查看包含异常堆栈的日志
grep -A 20 "Exception\|Error" /path/to/logs | tail -100

💡 宝塔面板推荐配置

方式一:使用宝塔进程管理器(最简单)

  1. 宝塔面板软件商店进程管理器
  2. 添加进程:
    • 名称: DouyinLogistics.API
    • 启动命令: dotnet /www/wwwroot/douyin-api/DouyinLogistics.API.dll --urls http://127.0.0.1:5000
    • 运行目录: /www/wwwroot/douyin-api
    • 日志文件: /www/wwwroot/douyin-api/logs/app.log
  3. 点击 日志 按钮即可查看实时日志

方式二:创建 systemd 服务

创建文件 /etc/systemd/system/douyin-api.service

[Unit]
Description=Douyin Logistics API
After=network.target

[Service]
Type=notify
WorkingDirectory=/www/wwwroot/douyin-api
ExecStart=/usr/bin/dotnet /www/wwwroot/douyin-api/DouyinLogistics.API.dll --urls http://127.0.0.1:5000
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=douyin-api
User=www
Environment=ASPNETCORE_ENVIRONMENT=Production

[Install]
WantedBy=multi-user.target

然后:

# 重载 systemd
systemctl daemon-reload

# 启动服务
systemctl start douyin-api

# 设置开机自启
systemctl enable douyin-api

# 查看日志
journalctl -u douyin-api -f

📝 日志级别说明

根据 appsettings.json 配置:

  • Default: Information - 记录信息级别及以上的日志
  • Microsoft.AspNetCore: Warning - 只记录警告和错误

日志级别(从低到高):

  • Debug - 调试信息(最详细)
  • Information - 一般信息(默认)
  • Warning - 警告信息
  • Error - 错误信息
  • Critical - 严重错误

当前代码中的日志级别:

  • _logger.LogDebug() - 调试信息(默认不显示)
  • _logger.LogInformation() - 一般信息(会显示)
  • _logger.LogWarning() - 警告(会显示)
  • _logger.LogError() - 错误(会显示)

🔧 临时启用 Debug 日志

如果需要查看更详细的日志,可以临时修改 appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Debug",  // 改为 Debug 可以看到更详细的日志
      "Microsoft.AspNetCore": "Warning"
    }
  }
}

修改后需要重启应用才能生效。