我想阅读notify-osd
不时显示的消息列表。如果这很重要,我仍然在使用 12.04。这可能吗?
这些 二2010 年的问题表明日志文件应该存在于~/.cache/notify-osd.log
。我没有这样的文件,我想知道这是否是一个错误(在这种情况下应该关闭这个问题)或者这个日志文件是否依赖于另一个设置(例如系统设置 -> 隐私)?
我不关心在重启之间存储数据。我只想浏览当前会话中的消息。
编辑:现在有两个很好的答案,但我想知道这些消息是否被存储任何地方,(猜测是 /tmp?RAM?)出现在屏幕上后会短暂停留一段时间。一定存在某种缓冲区,因为它们会一个接一个地出现,每次出现几秒钟,即使在一两分钟内有 20-30 条通知。
我在最初的问题中没有提到我对另一个 PPA + 指示器或过多的驱动器写入不感兴趣,我只是想知道是否有可能在消息出现后短时间内看到它们。
我使用这个功能是为了回溯并查找几分钟前在流媒体电台播放的歌曲。我把它作为背景音乐,偶尔听到后,某个曲调就会浮现在我的脑海里。我没有办法回溯查看 1-2 首歌曲之前播放的内容。
答案1
您可以安装 indicator-notifications 软件包,它可以跟踪您收到的通知。您可以使用以下命令安装
sudo add-apt-repository ppa:jconti/recent-notifications
sudo apt-get update
sudo apt-get install indicator-notifications
您必须注销并重新登录。它会显示为顶部面板上的邮箱,当您收到新消息时会变成绿色。
这是在 13.04 上,但也应该适用于 12.04。
答案2
仔细查看(大量)后,我发现 2011 年的代码更改使notify-osd
默认情况下不输出到日志文件,因为这是用于调试目的,每次输出时都会写入硬盘。要激活此功能,您可以通过两种方式进行,一种是临时方法,另一种是更永久的方法。
临时方法
打开终端我输入以下内容:
对于 64 位系统:
sudo killall notify-osd
LOG=1 /usr/lib/x86_64-linux-gnu/notify-osd &
对于 32 位系统:
sudo killall notify-osd
LOG=1 /usr/lib/notify-osd/notify-osd &
现在您将看到该.cache/notify-osd.log
文件及其中的调试信息。
永久方法(警告:全球变化)
要获得更持久的解决方案,请执行以下操作(全球变化。阅读下面 Rinzwind 提到的警告。这将影响每个人并杀死猫!):
sudo nano /etc/environment
在最后添加以下行并保存:
LOG=1
重新启动计算机进行测试。
永久方法(用户特定更改)
要获得更持久的解决方案,请执行以下操作(用户特定的更改。这只会影响您和狗。猫仍然会存活。):
sudo nano ~/.bashrc
在最后添加以下行并保存:
LOG=1
重新启动计算机进行测试。
您应该会看到文件中开始出现信息.cache/notify-osd.log
。例如,这是我在断开 2 次有线连接后显示的内容:
GNU nano 2.2.6 文件:.cache/notify-osd.log
[2013-05-04T18:49:55-00:00, NetworkManager ] Connected
Intel
[2013-05-04T18:50:26-00:00, NetworkManager ] Disconnected - you are now offline
Ethernet network
[2013-05-04T18:50:29-00:00, NetworkManager replaced] Connected
Intel
答案3
这将显示从启动到停止的所有通知消息。
dbus-monitor "interface='org.freedesktop.Notifications'" | \
grep --line-buffered "member=Notify\|string"
将其复制并粘贴到终端窗口(Ctrl++ Alt)T。
要停止它,请使用Ctrl+C或关闭窗口。
grep
虽然这种方法不具区分性且粗糙,但效果很好,但可以通过改变正则表达式来巧妙地监控特定通知代理所需的确切细节"member=Notify\|string"
。然后可以使用 等对文本进行修改sed
,awk
使其看起来更美观。
最后,将脚本与要监控的代理绑定以自动执行将是最有用的。
交叉引用:
- 详细说明有没有办法查看通知历史记录?