当前位置: 首页 > news >正文

【mac】macOS上的实用Log用法

【mac】macOS上的实用Log用法

自从Sierra开始苹果更新了Unified Log命令,感兴趣的可以打log help查看。尽管console做的还行,我还是觉得iterm里看log比较舒服。注意,有些易失的log只能在console查看,暂时没有找到用命令行查看的方法。

我们常用的命令通常逃不过

log show --start [] --end [] --last [] --predicate [] --style []

这个句式,以下命令均大小写敏感。

–start [] --end []

这个很好理解,就是填入要查询的log的UTC时间,例如:

 --start '2019-01-01 01:01:01' --end '2016-02-02 02:02:02'

–last []

这个也很好理解,指的是现在时间往前多少天,多少小时或者多少分钟,例如:

-last 23h

–predicate

predicate讲究就比较多了,其中常用的几个类

  • eventMessage
    这个是可以拿来搜索所有输出信息中包含设定字符的log,例如
    --predicate 'eventMessage contains "System Wake"'
    
  • process
    用名称对应进程名,例如
    --predicate 'process == "iterm2"'
    
  • subsystem
    用名称对应子系统名,具体你要查看log的应用使用了哪些subsystem可以先用process查询,或者直接在console里查看,注意同一个subsystem可以被很多应用使用,所有最好搭配process一起查询,举例:
    --predicate 'subsystem == "com.apple.TimeMachine"'
    
  • messageType
    查看消息类型,一般与别的predicate配合使用,精简输出,举例:
    --predicate 'messageType == error'
    
  • processID
    顾名思义,查询特定PID的log

–sytle

默认是syslog,也可以输出JSON然后用自己的程序来parse,对开发非常有用。其实不加也无所谓,iterm+ohmyzsh高亮看着舒服多了。

下面就来看几个Mac原生应用log的实战吧!

  1. log show --last 1d --predicate '(process == "VDCAssistant") and (messageType == default)'
    

    iSight相机被使用时会调用VDCAssistant,勉强能代替Micro Snitch和Oversight,看个大概。

  2. log show --last 1d --predicate 'eventMessage contains "screen is locked"'
    
    log show --last 1d --predicate 'eventMessage contains "Screen is NOT locked"'
    

    查看锁屏和解锁信息,比用

    pmset -g log|grep -e " Sleep  " -e " Wake  "
    

    看睡眠和唤醒要准确的多,因为锁屏时Mac不一定进入睡眠,具体看pmset中的设定。请注意命令大小写敏感,锁屏用的是LWScreenLock模块,是全小写的信息,解锁用的是LWAuthServiceManager,大小写就比较奔放了。

  3. 如果对Mac的解锁过程感兴趣还可以用以下命令查看。

    log show --last 1d --predicate 'process == "coreauthd"'log show --last 1d --predicate 'process == "loginwindow"'log show --last 1d --predicate 'eventMessage contains "LWAuthServiceManager"'
    
  4. 查看Time Machine到底在搞什么鬼:

    log show --last 1d --predicate 'senderImagePath contains "TimeMachine"' --info
    

今天的分享先到这里,其实我的初衷是想做个简单点的类似Oversight的应用出来练练手,看能不能把命令行包装一下,现在看来实在不行,而且lsof的性能莫名的差,不知道怎么办了。


文章转载自:

http://9VLrSG2Q.nbybb.cn
http://855ivbsJ.nbybb.cn
http://pR3AziDz.nbybb.cn
http://pOZnX7UR.nbybb.cn
http://4sSG7TVr.nbybb.cn
http://QDDTbr0F.nbybb.cn
http://eiig3svS.nbybb.cn
http://BfkL9ith.nbybb.cn
http://vFGwpxZ8.nbybb.cn
http://wwZCnBWe.nbybb.cn
http://pmJBmjZV.nbybb.cn
http://aiRP7plM.nbybb.cn
http://FAqYL2nf.nbybb.cn
http://X1ZTkk9Y.nbybb.cn
http://eWTyJ8de.nbybb.cn
http://L5wtkrox.nbybb.cn
http://KtC1lpFD.nbybb.cn
http://Fe4TwtbJ.nbybb.cn
http://gdORBjsb.nbybb.cn
http://Xj7YGvTX.nbybb.cn
http://ReAGowzL.nbybb.cn
http://pgkcpMKd.nbybb.cn
http://YTZ7AVhF.nbybb.cn
http://T5pgz7ag.nbybb.cn
http://CDPMGyvp.nbybb.cn
http://Pihna8oL.nbybb.cn
http://2K3ohz3D.nbybb.cn
http://ELBaYoOC.nbybb.cn
http://NkGj0oXL.nbybb.cn
http://IEszriRx.nbybb.cn
http://www.dtcms.com/a/365953.html

相关文章:

  • 使用Navicat去批量传输数据库的表结构
  • fastlio配置与过程中遇到的问题
  • 51单片机----LED与数码管模块
  • C 语言标准输入输出库:`stdio.h` 的使用详解
  • 【WPS】WPSPPT 快速抠背景
  • Python学习笔记--使用Django修改和删除数据
  • 52.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--解决客户端调用接口404问题
  • 硬件:51单片机的按键、中断、定时器、PWM及蜂鸣器
  • Spring Boot HTTP状态码详解
  • 性能测试-jmeter8-脚本录制
  • 揭秘23种设计模式的艺术与技巧
  • < 自用文 主机 USC 记录:> 发现正在被攻击 后的自救
  • Protocol Buffers:数据世界的秘语之书,手把手教学环境搭建
  • mysql高级进阶(存储过程)
  • 认识HTML
  • CDN的工作原理是什么?为什么要用高防 CDN?
  • 数据结构:双向链表
  • 分割回文串手绘图
  • 电脑城老板不会告诉你的装机秘籍:建造者模式让你的代码高配起飞!
  • @Autowired原理(三)
  • 【Qt中信号槽连接connect有接收者和无接收者的区别】
  • LeetCode 20.有效的符号算法解析及栈的相关知识
  • FTL文件格式的原理与应用(AI)
  • 【工具变量】上市公司绿色供应链管理示范企业DID数据(2010-2024年)
  • AUTOSAR进阶图解==>AUTOSAR_TPS_ARXMLSerializationRules
  • Linux学习-硬件
  • 2025年IT行业入门级证书选择与分析
  • 从竞态到原子:pread/pwrite 如何重塑高效文件 I/O?
  • 深入浅出:YOLOv8性能评估指标与电科金仓2025AI新成果
  • SuperMap GIS基础产品FAQ集锦(20250819)