TL;DR: Попробуйте journalctl -r _COMM=vlc
для современных дистрибутивов Linux на базе systemd по умолчанию (Ubuntu 15.04+), которые включают jounraldв качестве общего приемника протоколирования для ведения журнала процессов через stdout, включая VLC.
Многие ответы выше полезны и информативны, у @ Zoltán был ответ, который работает для VLC, установленного через snap (sudo snap install vlc
):
VLC будет входить в /var/log/syslog
Однако лучшим, более современным способом было бы использовать journalctl, отфильтрованный по команде vlc, например, последние 10 строк:
journalctl -r _COMM=vlc --lines 10 --no-pager
Следующий старый способ поиска в системном журнале работает достаточно хорошо, учитывая, что rsyslogd по умолчанию считывает journaldи регистрируется в /var/log/syslog:
grep vlc /var/log/syslog | tail
Вышеуказанные два варианта работали по умолчанию (для VLC snap 3.0.8 и Ubuntu 18.04.4 LTS), учитывая, что журналы процессов vlc записываются в stdout, и я предполагаю, что journald фиксирует stdout. Таким образом, оба следующих параметра, по умолчанию, могут оставаться непроверенными:
- >>Дополнительно - Регистратор - Запись в файл
- >>Дополнительно - системный журнал - Системный журнал (syslog)
Однако, если вы выполняете vlc непосредственно из терминала вместо gnome (или альтернативного) средства запуска рабочего стола, то потоки ввода-вывода stdout и stderr будут поступать на консоль терминала вместо journald. В таком случае может оказаться целесообразным включить любой из двух явных вариантов ведения журнала.
Запись в файл может быть затруднена, если приложение установлено как привязка, поскольку привязки имеют более строгую модель безопасности и могут блокировать создание файла журнала в произвольных каталогах.
Если требуется специальный файл журнала, либо войдите в папку, в которую snap разрешено записывать (см. snap connections vlc
, где я заметил, что такие места, как ваш домашний каталог, могут быть записаны). Запись непосредственно куда-либо в /var/log, вероятно, будет запрещена.
По умолчанию (в Ubuntu 18.04) journaldне сохраняет события при перезагрузках, но это делает системный журнал. При желании можно явно включить сохранение событий journald'а.
Запись VLC в файл напрямую, похоже, не помещает временные метки в прямой файл журнала, в то время как journaldи syslog включают временные метки для того, когда было сгенерировано событие.
До тех пор, пока сообщество Linux не будет полностью готово принять journald (с сохранением) вместо системного журнала, они сосуществуют, поэтому устаревшим способом решения этой проблемы * nix было бы настроить rsyslog для перенаправления журналов VLC в отдельное расположение журнала. Например. создайте каталог с соответствующими разрешениями:
sudo mkdir /var/log/vlcsudo chown syslog:adm /var/log/vlcsudo chmod ug+rwX,o-rwx /var/log/vlc/
Добавьте конфигурационный файл в rsyslog, например, по адресу /etc/rsyslog.d/30-vlc.conf
:
# filter out and move various VLC snap messages to it's own log fileif ($programname == 'vlc' or $programname == 'vlc_vlc.desktop') then{ action ( name="cntlm_log_file" type="omfile" file="/var/log/vlc/vlc.log" fileCreateMode="0640" fileOwner="syslog" fileGroup="adm" ) # don't log events to the system's default syslog file stop}
Перезапустите службу: sudo systemctl restart rsyslog
Также обязательно настройте logrotate, например, чтобы чередовать еженедельно и сохранять 12 недель, создайте файл /etc/logrotate.d/vlc
следующим образом:
/var/log/vlc/*.log{ rotate 12 weekly missingok notifempty compress delaycompress sharedscripts postrotate invoke-rc.d rsyslog rotate >/dev/null 2>&1 || true endscript}
Счастливого ведения журнала...