我在 Mac 上跟踪 system.log:
tail -f -n 0 /var/log/system.log
但我不知道如何写入此日志。它似乎确实是机器上的主要日志。我试过了:
logger foobar # didn't work
syslog -s -l error "message to send" # didn't work
有人知道如何在 Mac 上写入 system.log 吗?
更新:
如果我运行:log stream
然后使用:
logger -is -t krypted "Hello L"
它会出现在流中,但不会出现在/var/log/system.log
. 诡异的。
流式消息是二进制日志文件的一部分。Apple 正在转向统一的日志系统,因此日志不再以相同的方式工作,至少在默认情况下是这样。人们可能会尝试
syslogd
通过一个或两个配置文件来配置和/或 ASL(Apple System Logger),/etc/syslog.conf
并且/etc/asl.conf
. (有更多的 ASL 配置文件存储在 中/etc/asl
。)这可能涉及阅读手册页以了解如何为某些消息生成纯文本日志文件。其中一些手册可能是man 1 log
、man 1 syslog
、man 5 syslog.conf
和man 8 syslog
. 我还没有确切地确定如何执行此操作,但我想为您提供某种方法来生成、查看和“跟踪”自定义消息。(如果我确实通过配置他们的新日志系统来学习如何将某些消息发送到纯文本文件,我会回来更新这个答案。似乎至少可以做到,因为确实存在纯文本中的文件/var/log
。)syslog -s
可以使用和发送消息logger
。(该-s
选项将日志消息发送到syslogd
,并且syslog
可以做更多的事情logger
。)以类似的方式跟踪日志的一种简单方法tail
是使用Console.app
。打开程序并将光标放在Devices下列出的本地计算机上。在搜索字段中,提供用于发送消息的程序的名称:syslog
或之一logger
。接下来,打开终端并发送消息。然后可以在控制台中看到该消息,如下图所示。
可以从日志中获取消息。使用
--info
and/or--debug
选项指定log
默认忽略的行。在选项中指定哪个进程发送了系统日志消息--predicate
。或者
要获得类似于 的效果
tail
,请使用stream
命令。或者
启动流后,向见证人发送一条消息,表明它的行为方式与 类似
tail
,如图所示。该命令
syslog -s "test message"
用于发送消息。