在 Linux 里,“日志格式”通常指 系统日志(rsyslog / syslog / journald) 或 应用日志(如 Nginx、自定义程序) 的格式。下面按常见场景说明如何修改。
/etc/rsyslog.conf
/etc/rsyslog.d/*.conf
rsyslog 使用 template 定义格式。
示例:自定义传统格式
template(name="MyFormat" type="string"
string="%timereported% %HOSTNAME% %syslogtag% %msg%\n"
)
应用模板:
*.* /var/log/all.log;MyFormat
%timereported%:时间戳%HOSTNAME%:主机名%syslogtag%:程序名%msg%:日志内容%pri%:优先级修改后重启:
systemctl restart rsyslog
journald 不支持自定义文本格式,但可控制输出方式:
journalctl -o json
journalctl -o short
journalctl -o verbose
配置文件:
/etc/systemd/journald.conf
可改:
Storage=persistent
MaxRetentionSec=2week
http {
log_format myfmt '$remote_addr - $time_local "$request" '
'$status $body_bytes_sent "$http_referer"';
access_log /var/log/nginx/access.log myfmt;
}
nginx -t
systemctl reload nginx
import logging
logging.basicConfig(
format='%(asctime)s [%(levelname)s] %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
| 需求 | 方法 |
|---|---|
| 改时间格式 | rsyslog template / datefmt |
| 加主机名 | %HOSTNAME% |
| JSON 日志 | rsyslog template + json |
| 分隔符改逗号 | 自定义 template |
如果你能告诉我:
我可以直接给你一份可复制的配置。