当程序出现错误难以定位问题的时候,可以查看错误日志解决相关的问题,可以在错误日志目录下执行命令
tail -f 文件名
即可动态查看日志的内容
tail -f a.out |grep -C 36 ERROR
该命令实时读取日志文件,把出现“ERROR”行的日志前后各36日志打印出来。我们也可以把日志记录到文本中:
tail -f a.out |grep -C 36 ERROR >>error.log
如果日志在更新,如何实时查看 tail -f /var/log/messages
还可以使用
watch -d -n 1 cat /var/log/messages
-d表示高亮不同的地方,-n表示多少秒刷新一次。
该指令,不会直接返回命令行,而是实时打印日志文件中新增加的内容,这一特性,对于查看日志是非常有效的。终止输出时,按 Ctrl+C
即可。
在Linux系统中,有三个主要的日志子系统:
- 连接时间日志–由多个程序执行,把纪录写入到
var/log/wtmp
和/var/run/utmp
,login等程序更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统; - 进程统计–由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个纪录。进程统计的目的是为系统中的基本服务提供命令使用统计;
- 错误日志–由
syslogd(8)
执行。各种系统守护进程、用户程序和内核通过syslog(3)
向文件/var/log/messages
报告值得注意的事件。另外有许多UNIX程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。
/var/log/secure与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息