在 Linux 中,“日志路径”具体要看你指的是系统日志、某个服务的日志,还是应用程序的日志。下面按常见场景给你说明。
rsyslog(大多数发行版)配置文件:
/etc/rsyslog.conf
/etc/rsyslog.d/*.conf
日志默认路径(常见):
/var/log/messages # 一般信息(CentOS/RHEL)
/var/log/syslog # 系统日志(Ubuntu/Debian)
/var/log/secure # 安全、登录相关
/var/log/cron # 定时任务
修改日志路径示例:
# 把 auth 日志写到自定义路径
auth.* /data/logs/auth.log
修改后重启:
systemctl restart rsyslog
systemd-journald(systemd 系统)日志由 journald 管理,默认不生成普通文件,而是二进制日志。
配置文件:
/etc/systemd/journald.conf
相关参数:
Storage=persistent # 持久化
Compress=yes
查看日志:
journalctl
⚠️ journald 不直接设置“日志文件路径”,而是控制是否写入 /var/log/journal
/etc/nginx/nginx.conf
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
/etc/httpd/conf/httpd.conf # CentOS
/etc/apache2/apache2.conf # Ubuntu
ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log combined
/etc/my.cnf
/etc/mysql/my.cnf
[mysqld]
log-error=/var/log/mysql/error.log
/etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
通常由程序自身配置:
.conf / .yaml / .properties)例如:
./app --log-path=/data/logs/app.log
systemctl status 服务名
或:
grep -R "log" /etc/服务名/
| 类型 | 配置文件 |
|---|---|
| 系统日志 | /etc/rsyslog.conf |
| systemd 日志 | /etc/systemd/journald.conf |
| Nginx | /etc/nginx/nginx.conf |
| Apache | /etc/httpd/ 或 /etc/apache2/ |
| MySQL | /etc/my.cnf |
| Docker | /etc/docker/daemon.json |
如果你能告诉我:
我可以给你精确到文件 + 行数的修改示例。