VLC错误日志文件存放在哪里?

我尝试使用VLC打开一张蓝光光盘,但是出现了以下错误信息:
VLC无法打开MRL 'bluray:///dev/sr0'。请检查日志获取详情。
为了获取更多信息,我需要阅读VLC的日志,但我找不到任何日志文件,只找到了通过which vlc命令找到VLC所在位置:
/usr/bin/vlc
我去那个位置找了一下,但没有找到日志文件。

默认情况下,似乎未启用日志记录。您可以通过直接访问 @klugerama 的答案来节省很多麻烦:https://askubuntu.com/a/945445/135088 - Michael Scheper
8个回答

你可以直接在客户端中设置VLC日志文件的位置,方法是进入选项 工具 -> 首选项 -> 界面标签 -> 显示设置(底部)=“全部” -然后->高级 ->记录器
勾选 记录到文件。设置一个日志文件名日志格式详细程度
你可以根据日志文件中所需的信息级别将详细程度设置为:默认、信息、错误、警告、调试。 重要提示:然后你必须重新启动VLC客户端才能使更改生效。

谢谢,这缩小了我的搜索范围,但是在/var/log目录下有许多日志文件,不知道如何找到属于VLC的那一个。 - sharkant
2好的,这可能是您在程序中设置的选项。尝试按照下面链接中描述的方式进行操作:打开VLC -> 工具 -> 首选项 -> 选择“全部” -> 高级 -> 日志记录。 - Nick Rodriguez
这个解决方案对您有帮助吗? - Nick Rodriguez
当我按照您给出的路径时,确实有一个名为“logfilename”的字段,但它是空白的。这是否意味着我必须自己选择一个日志文件名,并且只有在创建了该文件后才会在其中显示错误消息? - sharkant
是的,你必须选择你想要使用的日志文件。然后我相信你将不得不重新启动播放器以使更改生效。此外,请确保详细程度设置为1或2,具体取决于你想要的错误日志记录的详细程度。 - Nick Rodriguez
在Linux Debian上运行Flatpak的VLC,并设置一个类似于/home/username/vlc-log的名称,实际的日志文件是/home/username/vlc。奇怪的是,日志文件名中的破折号不起作用! - Elliptical view

感谢Pananoid Panda和Kluegerama提供的详细信息,但我认为这个答案需要更简洁。对于那些想要在VLC中启用日志记录的人,以下步骤已经确认适用于Mac、Linux和Windows。
在PC上,转到“工具”->“首选项”->点击“显示全部”按钮(弹出窗口左下角)->“高级”->“高级设置”->“日志记录器”。在Mac上,首选项位于VLC菜单下,其余步骤与PC相同。
  1. 勾选“记录到文件”选项。在“日志文件名”下方指定日志文件的名称,并点击浏览按钮设置日志文件的位置。您必须浏览到您想要的日志文件所在的位置,然后点击保存(Mac上为选择)。

  2. 选择文本作为日志格式。

  3. 将详细程度设置为调试(旧版本上的选项2),其他选项为信息、警告(旧版本上的选项1)和错误。默认选项相当于旧版本上的0。

  4. 点击保存按钮并退出VLC。

  5. 重新启动VLC。

下次启动VLC时,它将把所有活动记录到指定的文件中。


有用的文章,尽管#2日志记录到文件框不再存在,看起来已经移至之前的日志记录。 - dez93_2000

继Paranoid Panda所说的,你还必须启用日志记录:
在首选项中选择“界面”部分(按照显示所有设置的相同步骤),并勾选“记录到文件”和/或“记录到系统日志”的适当选项。

这应该是被接受的答案。(我以前从来没有见过一个被接受的答案有负投票!) - Michael Scheper

在你按照@AnotherLongUsername所描述的方式设置VLC记录到文件之前,VLC将会记录到/var/log/syslog。这个文件是多个不同应用程序共享的,所以你需要在该文件中搜索"vlc"来找到VLC的消息。

在哪个设施下? - ychaouche
@ychaouche 抱歉,我不明白你的问题。你所说的“facility”是指什么? - Zoltán
1谢谢,没有一个人能说出日志文件的位置在哪里。 - Joe
1@ychaouche,默认的设施似乎是“用户”,默认的进程/应用程序名称是“vlc”。 - JPvRiel

你可以像这样设置VLC日志文件的位置和详细程度:
1. 从菜单中选择“工具”→“首选项”(或者按下Ctrl+P键) 2. 在首选项窗口左下角的“显示设置”单选按钮中,点击“全部” 3. 在首选项树中找到“高级”→“日志记录”
根据manpage的说明,不同的详细程度含义如下:
- 0 = 静默 - 1 = 信息/警告消息 - 2 = 调试

TL;DR:对于默认的现代systemd基础的Linux发行版(Ubuntu 15.04+),可以尝试使用journalctl -r _COMM=vlc命令,它包括了作为通过stdout记录日志的进程的常见日志接收器的jounrald,其中包括VLC。
上面的许多答案都很有用和信息丰富,@Zoltán提供了一个适用于通过snap安装的VLC的解决方案(sudo snap install vlc):

VLC将记录到/var/log/syslog

然而,更好、更现代的方法是使用过滤到vlc命令的journalctl,例如最后10行:
journalctl -r _COMM=vlc --lines 10 --no-pager

以下的旧方法搜索syslog已经足够好了,因为rsyslogd默认读取journald并将日志记录到/var/log/syslog。
grep vlc /var/log/syslog | tail

上述的两个选项默认情况下是有效的(适用于VLC snap 3.0.8和Ubuntu 18.04.4 LTS),因为VLC进程日志输出到标准输出(stdout),我假设journald会捕获标准输出。所以以下两个选项,按照默认设置,都可以不勾选:
高级 -> 日志记录器 -> 记录到文件 高级 -> syslog -> 系统日志(syslog)
然而,如果您直接从终端执行vlc而不是gnome(或其他)桌面启动器,则标准输出(stdout)和标准错误(stderr)流将会输出到终端控制台而不是journald。在这种情况下,启用其中任何一个显式的日志记录选项可能是合适的。
如果希望记录到文件,对于安装为snap的应用程序来说可能会有些棘手,因为snaps具有更严格的安全模型,可能会阻止在任意目录创建日志文件。
如果需要一个专用的日志文件,可以将日志记录到snap允许写入的位置(参见`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
还要确保设置好日志轮转,例如每周轮转一次,保留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
}

愉快地记录...


你不需要启用日志记录来查看一次性错误消息。
1. 打开消息窗口(工具消息,也可以通过Ctrl-M快捷键打开)。 2. 在窗口底部,启用详细输出(通常,默认级别足够(错误))。 3. 再次打开源代码,并在日志窗口中寻找任何引人注目的内容。 4. 如果找不到明显的问题,请尝试将其设置为“警告”,然后再次打开源代码。 你也可以尝试将其设置为调试模式,如果你感觉胆大的话,但大多数情况下,这会给你提供比你所需的更多的信息。

如果你尝试流媒体内容时遇到“无法打开某个设备”的错误提示,那么你需要安装vlc-plugin-access-extra插件。
sudo apt-get install vlc-plugin-access-extra