Как я могу зарегистрировать все действия уведомления-отправки?

Я продолжаю получать очень странные уведомления, которые уходят до того, как я могу их прочитать, они длинные и появляются в случайное время, последнее, которое появлялось при обновлении ядра, оно имело странный значок и было длинным, но мне не удалось прочитать это, потому что это было на экране так кратко.

Итак, мне интересно, есть ли какой-нибудь журнал, в котором регистрируются все вызовы notify-send, в котором регистрируется вызывающая его программа и все заданные параметры? Или если я могу настроить такой журнал, чтобы узнать, о чем эти уведомления? Я использую Ubuntu GNOME 15.10 с GNOME 3.18.

4
задан 10 May 2016 в 18:45

1 ответ

Даже не нуждался в полном сценарии...
..., но помещенный это в форме сценария:

#!/bin/bash

file=$1

dbus-monitor "interface='org.freedesktop.Notifications'" |\
 grep --line-buffered "string" |\
 grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v |\
 grep --line-buffered '.*(?=string)|(?<=string).*' -oPi |\
 grep --line-buffered -v '^\s* 

Для выполнения его

  • Копия "сценарий" в пустой файл сохраните его как keep_log.sh
  • Выполнение он с файлом журнала как спор с командой

    /bin/bash /path/to/keep_log.sh /path/to/log.txt
    

, ответ был получен от более ранний ответ (не простофиля), в котором это применение метода было упомянуто как пример.

ответ, который я дал там на его собственной очереди, был основан этот очень хороший ответ, , в котором объяснен, что метод использует dbus-monitor для прерывания содержания, уведомляют - отправляют. Путем редактирования примера там, мы можем заставить его записать notify-send сообщения в (журнал-) файл.

Или, более изящный

... должен был бы добавить дату к файлу журнала, произведя файл журнала как:

---di 10 mei 2016 17:37:20 CEST---
SOme kind of a message!
---di 10 mei 2016 17:37:20 CEST---
The last message was misspelled so here i9s another one

В этом случае, сценарий был бы:

#!/bin/bash

logfile=$1

dbus-monitor "interface='org.freedesktop.Notifications'" |\
grep --line-buffered "string" |\
grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v |\
grep --line-buffered '.*(?=string)|(?<=string).*' -oPi |\
grep --line-buffered -v '^\s* |\
xargs -I '{}' \
printf "---$( date )---\n"{}"\n" >> $logfile
|\ xargs -I '{}' echo {} >> $file

Для выполнения его

  • Копия "сценарий" в пустой файл сохраните его как keep_log.sh
  • Выполнение он с файлом журнала как спор с командой

    /bin/bash /path/to/keep_log.sh /path/to/log.txt
    

, ответ был получен от более ранний ответ (не простофиля), в котором это применение метода было упомянуто как пример.

ответ, который я дал там на его собственной очереди, был основан этот очень хороший ответ, , в котором объяснен, что метод использует dbus-monitor для прерывания содержания, уведомляют - отправляют. Путем редактирования примера там, мы можем заставить его записать notify-send сообщения в (журнал-) файл.

Или, более изящный

... должен был бы добавить дату к файлу журнала, произведя файл журнала как:

---di 10 mei 2016 17:37:20 CEST---
SOme kind of a message!
---di 10 mei 2016 17:37:20 CEST---
The last message was misspelled so here i9s another one

В этом случае, сценарий был бы:

#!/bin/bash

logfile=$1

dbus-monitor "interface='org.freedesktop.Notifications'" |\
grep --line-buffered "string" |\
grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v |\
grep --line-buffered '.*(?=string)|(?<=string).*' -oPi |\
grep --line-buffered -v '^\s* |\
xargs -I '{}' \
printf "---$( date )---\n"{}"\n" >> $logfile
0
ответ дан 11 May 2016 в 04:45
  • 1
    К вашему сведению предложенный ' fix' для этого редактирования /etc/default/grub didn' t устраняют эту проблему для меня - когда я сделал это, я больше не смог войти в систему, пока я не вернулся изменение. Вернувшись изменение, хотя, сообщение об ошибке, кажется, исчезло, хотя система все еще зависает. – walrus 21 November 2017 в 04:15

Другие вопросы по тегам:

Похожие вопросы: