创建 /etc/systemd/system/your_app.service 文件,替换为适合你的应用的名称:
[Unit]
Description=ASP.NET Core Application
[Service]
WorkingDirectory=/path/to/your_app/publish
ExecStart=/usr/bin/dotnet /path/to/your_app/publish/your_app.dll
Restart=always
RestartSec=10
SyslogIdentifier=dotnet-your_app
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
- WorkingDirectory:应用程序的工作目录(发布目录)。
- ExecStart:启动应用的命令,这里指定 dotnet 和应用的 DLL 文件路径。
- Restart:配置应用异常退出时自动重启。
- SyslogIdentifier:指定日志标识符,可以方便地过滤日志。
- User:指定运行服务的用户(例如 www-data,避免使用 root 用户)。
- Environment:指定环境变量(如 Production)。
启动并启用服务:
sudo systemctl enable your_app.service
sudo systemctl start your_app.service
查看服务状态:
sudo systemctl status your_app.service
查看服务日志:
sudo journalctl -u your_app.service
nginx 反代模板:
server {
listen 80;
server_name your_domain.com;
location / {
proxy_pass https://lwbj.cn:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
查看实时日志输出
要实时查看应用的日志输出,可以使用以下命令:
sudo journalctl -u your_app.service -f
- -u your_app.service 指定服务名称,替换为你的服务文件名称。
- -f 表示实时跟踪日志输出(类似 tail -f)。
查看全部日志
查看应用自启动以来的全部日志:
sudo journalctl -u your_app.service
这将显示该服务的全部日志记录。
按时间范围查看日志
可以按时间范围筛选日志,例如查看过去一小时的日志:
sudo journalctl -u your_app.service --since "1 hour ago"
或者查看特定日期之后的日志:
sudo journalctl -u your_app.service --since "2024-11-01"
按关键字过滤日志
如果你只想查看特定关键字的日志,例如包含错误信息的日志,可以使用 grep 命令进行过滤:
sudo journalctl -u your_app.service | grep "error"
清除指定服务的日志
要清除特定服务(如 ASP.NET Core 应用)的日志,可以使用 journalctl 的 –vacuum 选项。虽然 journalctl 没有直接提供按服务清除的功能,但可以通过指定服务名来筛选日志,再结合清除命令:
sudo journalctl --vacuum-size=100M -u your_app.service
这将限制日志文件的总大小为 100MB,多余的日志会被删除。将 100M 替换为你期望的日志限制大小。
清除日志到指定时间点
你可以通过 –vacuum-time 参数清除指定时间之前的所有日志数据:
sudo journalctl --vacuum-time=7d
这将清除 7 天之前的所有日志数据,包括所有服务的日志(不是仅 ASP.NET Core 应用)。
清除所有 journald 日志
如果你希望彻底清除所有 journald 日志数据(适用于开发或测试环境,生产环境需谨慎),可以使用以下命令:
sudo journalctl --vacuum-size=1M
这会将日志数据限制为 1MB,基本相当于清空所有日志数据。
如果你希望彻底清除所有 journald 日志数据(适用于开发或测试环境,生产环境需谨慎),可以使用以下命令:
sudo journalctl –vacuum-size=1M
删除 journal 日志文件
可以手动删除存储在 /var/log/journal/ 目录下的日志文件。这样会清空所有服务的日志,建议谨慎使用。
sudo rm -rf /var/log/journal/*
sudo systemctl restart systemd-journald
定期清理
可以在 journald 配置文件 /etc/systemd/journald.conf
中设置日志的最大保留大小或时间,定期清理旧日志。