Where is the VLC logfile for errors?
You can set the VLC log file location directly in the client by going into the options Tools -> Preferences -> Select «ALL» -> Advanced -> Logging . You can also set the verbosity 0: silent, 1: error/info, 2: warning, 3: debug depending on the level of information you would like in the log file. Then restart the VLC client for the changes to take effect.
Solution 2
Thanks to Pananoid Panda and Kluegerama for supplying the detail, but I think this answer needs to be more concise. For those of you looking to enable logging in VLC the following steps are confirmed to work on Mac, Linux and Windows.
On a PC go to Tools -> Preferences -> Press «Show All» button (bottom left of pop-up window) -> Advanced -> Advanced settings -> Logger. On a Mac preferences is under the VLC menu, the rest is the same as for PC.
- Tick the box to ‘Log to file’. Specify log file name under where it says ‘Log filename’ and click the browse button to set a location for the log file. You must browse to where you want the log file to be, then click Save (Select on a Mac).
- Choose Text for the Log format.
- Set verbosity to Debug (option 2 on older versions) — other options are Info, Warning (both option 1 on older versions) and Error. The Default option is equivalent to 0 on older versions.
- Click the Save button and exit VLC.
- Restart VLC.
When you next start VLC, it will be logging all activity to the file specified.
Solution 3
To add to what Paranoid Panda said, you must also enable logging:
Select the «Interface» section in Preferences (after following the same directions for showing all settings), and check the appropriate for «Log to file» and/or «Log to syslog».
Solution 4
Before you set VLC to log to file as @AnotherLongUsername described, VLC will be logging to /var/log/syslog . This file is shared among many different applications, so you will have to search for » vlc » in that file to find VLC’s messages.
Solution 5
TL;DR: Try journalctl -r _COMM=vlc for the default modern systemd based Linux distros (Ubuntu 15.04+), which includes jounrald as a common logging sink for processes logging via stdout, including VLC.
Many answers above are useful and informative, @Zoltán had an answer that works for VLC installed via snap ( sudo snap install vlc ):
However, the better more modern way would be to use journalctl filtered to the vlc command, e.g. last 10 lines:
journalctl -r _COMM=vlc --lines 10 --no-pager
The following old way searching syslog works well enough, given rsyslogd reads journald and logs to /var/log/syslog by default:
grep vlc /var/log/syslog | tail
The above two options worked by default (for VLC snap 3.0.8 and Ubuntu 18.04.4 LTS) given the vlc process logs to stdout and I assume journald captures stdout. So both of the following, as per default, can remain unchecked:
However, if you execute vlc directly from a terminal instead of gnome (or alternate) desktop launcher, then stdout and stderr IO streams would go to the terminal console instead of journald. In such a case, enabling either of the two explicit logging options might be appropriate.
Logging to a file can be tricky if the app is installed as a snap, since snaps have a stricter security model and might block creating a log file in arbitrary directories.
If a dedicated log file is desired, either log to a location the snap is allowed to write to (see snap connections vlc , where I noticed locations such as your home dir can be written to). Writing directly to somewhere in /var/log probably won’t be allowed.
By default (in Ubuntu 18.04), journald doesn’t persist events across reboots, but syslog does. One can explicitly enable journald events to persist if so desired.
VLC logging to file directly doesn’t seem to put timestamps into the direct log file while journald and syslog include timestamps for when the event was generated.
Until the Linux community is fully ready to adopt journald (with persistence) instead of syslog, they coexist, so the legacy *nix way of handling this would be to configure rsyslog to redirect VLC logs into a separate log location. E.g. create the dir with appropriate permissions:
sudo mkdir /var/log/vlc sudo chown syslog:adm /var/log/vlc sudo chmod ug+rwX,o-rwx /var/log/vlc/
Add a config file to rsyslog, e.g. at /etc/rsyslog.d/30-vlc.conf :
# filter out and move various VLC snap messages to it's own log file if ($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 >
Restart the service: sudo systemctl restart rsyslog
Also be sure to setup logrotate as well, e.g. to rotate weekly and keep 12 weeks, create a file /etc/logrotate.d/vlc as follows:
/var/log/vlc/*.log < rotate 12 weekly missingok notifempty compress delaycompress sharedscripts postrotate invoke-rc.d rsyslog rotate >/dev/null 2>&1 || true endscript >
Где находится лог-файл VLC для ошибок?
Я пытался открыть Blu-Ray с VLC, но я получил это сообщение об ошибке:
VLC не может открыть MRL ‘bluray:///dev/sr0’. Проверьте журнал для деталей.
Для получения дополнительной информации я должен прочитать журнал из VLC, но я не могу найти ни одного журнала, я нашел только с which vlc где находится VLC, а именно
Я пошел туда, но не нашел файл журнала.
5 ответов
Вы можете установить местоположение файла журнала VLC непосредственно в клиенте, зайдя в опции Tools -> Preferences -> Select «ALL» -> Advanced -> Logging , Вы также можете установить многословие 0: silent, 1: error/info, 2: warning, 3: debug в зависимости от уровня информации, которую вы хотели бы в файле журнала. Затем перезапустите клиент VLC, чтобы изменения вступили в силу.
Спасибо Pananoid Panda и Kluegerama за предоставление деталей, но я думаю, что этот ответ должен быть более кратким. Для тех из вас, кто хочет включить регистрацию в VLC, следующие шаги подтверждены для работы на Mac, Linux и Windows.
На ПК перейдите в Инструменты -> Настройки -> Нажмите кнопку «Показать все» (в левом нижнем углу всплывающего окна) -> Дополнительно -> Дополнительные настройки -> Logger. На Mac настройки находятся в меню VLC, остальное такое же, как и на ПК.
- Установите флажок «Записать в файл». Укажите имя файла журнала, в котором указано «Имя файла журнала» и нажмите кнопку обзора, чтобы указать местоположение файла журнала. Вы должны перейти туда, где вы хотите, чтобы файл журнала был, а затем нажмите » Сохранить» (выберите на Mac).
- Выберите текст для формата журнала.
- Установите для многословия значение » Отладка» (вариант 2 в более старых версиях) — другими параметрами являются «Информация», «Предупреждение» (оба варианта 1 в более старых версиях) и «Ошибка». Параметр по умолчанию эквивалентен 0 в более старых версиях.
- Нажмите кнопку Сохранить и выйдите из VLC.
- Перезапустите VLC.
Когда вы в следующий раз запустите VLC, он будет записывать все действия в указанный файл.
Чтобы добавить к тому, что сказал Paranoid Panda, вы также должны включить ведение журнала:
Выберите раздел «Интерфейс» в «Настройках» (следуя тем же указаниям для отображения всех настроек), и отметьте соответствующие пункты «Журнал в файл» и / или «Журнал в системный журнал».
Прежде чем вы установите VLC для входа в файл как описано @AnotherLongUsername, VLC будет входить в /var/log/syslog , Этот файл используется многими различными приложениями, поэтому вам придется искать vlc «чтобы найти сообщения VLC.
Вы можете установить местоположение и уровень многословия для файла журнала VLC следующим образом:
- Выбрать Tools → Preferences из меню (или введите CTRL + P )
- в Show settings переключатели в левом нижнем углу окна настроек, нажмите «Все»
- Идти к Advanced → Logging в дереве настроек
Согласно справочной странице, это то, что означают различные уровни многословия:
Вам не нужно включать ведение журнала только для того, чтобы видеть одноразовые сообщения об ошибках.
- Откройте окно сообщений ( Tools → Messages , также доступно через Ctrl — M ).
- Внизу окна включите подробный вывод (часто бывает достаточно уровня по умолчанию (ошибки).
- Снова откройте исходный код и найдите все, что выделяется в окне журнала.
- Если вы не можете найти ничего очевидного, попробуйте установить для него «предупреждения», а затем снова откройте исходный код.
Вы также можете попробовать настроить его на отладку, если хотите, но в большинстве случаев это даст вам больше информации, чем то, что вам нужно.
TL;DR: Попробуйте journalctl -r _COMM=vlc для современных дистрибутивов Linux на основе systemd по умолчанию (Ubuntu 15.04+), который включает jounrald в качестве общего приемника журналов для процессов, журналируемых через стандартный вывод, включая VLC.
Многие ответы выше полезны и информативны, у @Zoltán был ответ, который работает для VLC, установленного через snap ( sudo snap install vlc ):
Однако более современным способом было бы использовать 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 -> Системный журнал (syslog)
Однако, если вы запускаете vlc непосредственно из терминала, а не из программы запуска рабочего стола gnome (или альтернативы), тогда потоки ввода-вывода stdout и stderr будут направляться в консоль терминала вместо journald. В таком случае может оказаться целесообразным включение любой из двух явных опций ведения журнала.
Запись в файл может быть сложной задачей, если приложение устанавливается как оснастка, поскольку у привязок более строгая модель безопасности и они могут блокировать создание файла журнала в произвольных каталогах.
Если требуется специальный файл журнала, либо ведите журнал в том месте, куда привязке разрешена запись (см. snap connections vlc , где я заметил, что можно записывать такие места, как ваш домашний каталог). Запись напрямую куда-нибудь в / var / log, вероятно, не будет разрешена.
По умолчанию (в Ubuntu 18.04) journald не сохраняет события при перезагрузке, но syslog сохраняет. При желании можно явно разрешить сохранение событий journald.
Запись журнала VLC в файл напрямую, похоже, не помещает метки времени в файл прямого журнала, в то время как journald и syslog включают метки времени, когда было сгенерировано событие.
Пока сообщество Linux не будет полностью готово к использованию journald (с постоянством) вместо syslog, они сосуществуют, поэтому унаследованный способ обработки *nix будет заключаться в настройке rsyslog для перенаправления журналов VLC в отдельное место журнала. Например, создайте каталог с соответствующими разрешениями:
sudo mkdir /var/log/vlc sudo chown syslog:adm /var/log/vlc sudo 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 file if ($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 >