在NotifyOSD消息显示后,我如何阅读它们?

我想要时不时地阅读由notify-osd显示的消息列表。我仍在使用12.04版本,如果有关系的话。这个可能吗?
2010年的这两个问题(链接1)(链接2)表明一个日志文件应该存在于~/.cache/notify-osd.log。我没有这样的文件,并且我想知道这是一个错误(如果是这样,那么这个问题应该被关闭),还是这个日志文件依赖于另一个设置(比如系统设置 -> 隐私)?
我不关心在重新启动之间存储数据。我只想浏览当前会话中的消息。 编辑:现在有两个很好的答案,但我想知道这些消息是否在出现在屏幕上后的短时间内存储在任何地方(猜测,/tmp?RAM?)。某种缓冲区必须存在,因为它们一个接一个地出现,每个消息持续几秒钟,即使在一两分钟内有20-30个通知。
我在原问题中没有提到我对于又一个PPA +指示器或过多的磁盘写入不感兴趣,我只想知道是否有可能在消息出现后的短时间内查看它们。
我的使用场景是为了回溯并找出几分钟前在流媒体广播电台上播放的歌曲。我把它当作背景音乐,偶尔会有一首曲子在我听过之后留在脑海里。我无法回去看看1-2首之前播放的内容。

1你看不到日志的原因是:https://bugs.launchpad.net/ubuntu/+source/notify-osd/+bug/904835 - Seth
你用什么应用程序或播放器来收听广播流? - Basharat Sialvi
@BasharatSial Radiotray - Tom Brossman
1@TomBrossman Radiotray有一个“历史插件”,可以跟踪之前播放过的歌曲。 - Basharat Sialvi
@BasharatSial 谢谢,这对我来说可能是最简单的解决方案。 - Tom Brossman
3个回答

你可以安装indicator-notifications软件包,它可以跟踪你收到的通知。你可以按照以下步骤进行安装。
sudo add-apt-repository ppa:jconti/recent-notifications
sudo apt-get update
sudo apt-get install indicator-notifications

你需要退出并重新登录。它会显示在顶部面板上,当你收到新消息时会变成绿色的邮箱图标。

Notifications

这是在13.04上,但也应该适用于12.04。

这是在Ubuntu 19.04(GNOME Shell)中没有显示指示器通知和系统托盘图标。 - MD. Mohiuddin Ahmed

这将显示从启动到停止的所有通知消息。
dbus-monitor "interface='org.freedesktop.Notifications'"    |     \
grep --line-buffered  "member=Notify\|string"

复制并粘贴到终端窗口 (Ctrl+Alt+T)。

要停止它,请使用 Ctrl+C 或关闭窗口。

虽然效果不分散且粗糙,但可以通过修改 grep 正则表达式 "member=Notify\|string" 来调整以监视所需的确切详细信息。然后可以使用 sedawk 等进行美化处理。

倒数第二步,将脚本绑定到要监视的选择代理以实现自动执行将非常有用。

交叉参考:
- 是否有一种查看通知历史记录的方法?


1+1 这很有趣,但是要查看过去的消息,它必须已经在运行了。 - Tom Brossman
1这将显示从启动开始直到停止的所有通知消息。所有其他提出的解决方案在生效之前必须被执行。这没有什么不同,除了...为了使其“粘性”,脚本可以作为引导初始化例程的一部分包含在其中。还可以将输出导入日志文件中。附加链接以获取更多详细信息。待添加的链接 - 很多很多很多 - troll la la la

在仔细查找(很多次)之后,我发现了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文件中。例如,这是我断开有线连接两次后的情况:
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

4小心警告:这可能是个坏主意...在/etc/environment中设置LOG=1会使其成为系统范围的变量,可能会导致一些问题...天知道有什么东西依赖于LOG(当然,他们应该将其命名为类似NOTIFYOSDLOG的东西)。也许刚开始时我会将其添加到bashrc中,只针对一个用户以确保安全。 - Rinzwind
@Rinzwind 是的,我也这么想。已添加bashrc文件。 - Luis Alvarado
谢谢Luis。我接受了这个回答,因为它不需要另一个PPA,这太好了。(我把奖励给了@Stump,只是因为你的声望很高,你不会错过它,希望你不介意)。 - Tom Brossman
1@TomBrossman 我会一直讨厌你,直到Ubuntu收购微软为止^^。 - Luis Alvarado