获取系统日志数据的命令
linux/android
shell
$ sudo dmesg -Tw
$ sudo dmesg -Tw
freebsd
由于缺少像dmesg
一样的工具,所以需要直接去读取文件
shell
$ less /var/log/messages
$ less /var/log/messages
macos
封装了log
命令行工具
shell
# 获取历史log 数据
$ log show
# 获取最新log流数据,该命令是阻塞的
$ log stream
# 获取历史log 数据
$ log show
# 获取最新log流数据,该命令是阻塞的
$ log stream
windows
采用powershell
终端命令获取
如下表示
- 调用
Get-WinEvent
程序 - 获取日志名称为
System
的, -Oldest
获取日志时间从旧往新排序-Force
表示当名称参数的值包含通配符- 时,需要使用
Force
参数才能获取调试或分析日志 | Format-List -Property *
表示使用管道的方式把输出格式转换一下,转变为一列一行的形式输出数据
powershell
PS> Get-WinEvent -LogName System -Oldest -Force | Format-List -Property *
PS> Get-WinEvent -LogName System -Oldest -Force | Format-List -Property *
如果是在命令行中调用,容易遇到utf-8
编码失败问题,如果上层程序不太好处理,可以通过命令行中指定以utf-8
编码重定向到一个文件去读取数据
powershell
PS> Get-WinEvent -LogName System -Oldest -Force | Format-List -Property * | out-file test.log -encoding utf8
PS> Get-WinEvent -LogName System -Oldest -Force | Format-List -Property * | out-file test.log -encoding utf8