Debian记事本如何进行日志记录
小樊
48
2026-01-11 15:23:41
先明确你的“记事本”指的是什么
- 若你指的是系统自带的文本编辑器(如 Gedit、Kate、Mousepad、Notepadqq 等),它们本身不会自动写系统日志;日志是由系统日志服务(如 rsyslog)写入的。你可以让编辑器把内容写入你指定的日志文件,或配置系统把编辑器的输出重定向到日志。
- 若你指的是“系统日志/记事本类应用如何记录与查看”,请看下文的系统日志方案。
用编辑器把内容写入自定义日志文件
- 基本思路:在保存或追加内容时,使用 shell 重定向把文本追加到日志文件(日志文件建议放在 /var/log/,并做好权限与轮转)。
- 示例(命令行方式,适用于任何编辑器):
- 追加一行日志
echo “$(date ‘+%F %T’) 应用启动” | sudo tee -a /var/log/myapp.log
- 用编辑器编辑并追加到日志(保存后自动追加)
sudo tee -a /var/log/myapp.log <(echo “$(date ‘+%F %T’) 开始编辑”) && gedit /var/log/myapp.log
- 权限与目录准备(首次使用建议执行):
sudo mkdir -p /var/log/myapp
sudo touch /var/log/myapp.log
sudo chown syslog:adm /var/log/myapp.log # 与系统日志同属组便于管理
sudo chmod 640 /var/log/myapp.log
- 图形界面编辑器的便捷做法:把日志目录加入书签,编辑后手动“保存为”或“另存为”到日志文件;或用上面的 tee 命令在终端快速追加。
让系统自动记录你的程序输出到日志
- 后台运行并重定向输出到系统日志文件:
nohup your-app >> /var/log/yourapp.log 2>&1 &
- 使用 systemd 服务并写入 journal(推荐):
- 创建服务文件:sudo nano /etc/systemd/system/yourapp.service
- 示例内容:
[Unit]
Description=Your App
After=network.target
[Service]
ExecStart=/usr/bin/your-app
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
- 启用并启动:
sudo systemctl daemon-reload
sudo systemctl enable --now yourapp.service
- 查看日志:
journalctl -u yourapp.service -f
- 将日志同时写入文件与 journal:在程序内用日志库(如 Python logging、Node.js winston)配置多个 Handler,或在 systemd 中配合 ExecStartPre/ExecStartPost 做文件写入。
系统级日志位置与查看方式
- 主要日志路径与作用:
- /var/log/syslog:综合系统日志
- /var/log/auth.log:认证与授权(登录、sudo 等)
- /var/log/kern.log:内核消息
- /var/log/dpkg.log、/var/log/apt/:包管理日志
- /var/log/apache2/、/var/log/mysql/:对应服务日志(若安装)
- 常用查看命令:
- 实时查看:tail -f /var/log/syslog
- 按服务查看:journalctl -u 服务名
- 按时间查看:journalctl --since “2026-01-01 00:00:00” --until “2026-01-01 12:00:00”
- 本次启动:journalctl -b
- 图形化查看工具:
- GNOME:gnome-system-log,KDE:kSystemLog(安装后即可在菜单中打开并浏览 /var/log 下的日志)。
自定义日志规则与日志轮转
- 使用 rsyslog 自定义规则(示例:把来自某 IP 的日志单独写入文件)
- 编辑配置:sudo nano /etc/rsyslog.d/50-custom.conf
- 写入规则:
if $fromhost-ip == ‘192.168.1.100’ then /var/log/custom_ip.log
& stop
- 重启服务:sudo systemctl restart rsyslog
- 使用 syslog-ng 的示例(如已安装 syslog-ng)
- 编辑:sudo nano /etc/syslog-ng/syslog-ng.conf
- 片段:
filter f_custom_ip { host(“192.168.1.100”); };
destination d_custom_ip { file(“/var/log/custom_ip.log”); };
log { source(s_all); filter(f_custom_ip); destination(d_custom_ip); };
- 重启:sudo systemctl restart syslog-ng
- 日志轮转(防止日志过大):
- 主配置:/etc/logrotate.conf;服务配置:/etc/logrotate.d/
- 示例(对自定义日志做按周轮转与压缩):
/var/log/myapp.log {
weekly
rotate 4
compress
delaycompress
missingok
notifempty
create 640 root adm
}
- 测试与强制执行:
sudo logrotate -d /etc/logrotate.conf # 干跑预览
sudo logrotate -f /etc/logrotate.conf # 强制执行一次。