将自定义日志位置添加到OS X控制台应用程序

28
在网上搜索后,我找到的最佳解决方案是在"/Library/logs/"或"~/Library/logs/"中创建符号链接,以使其在控制台应用程序中显示。
我想知道是否可以直接在“日志文件”部分下的“根”级别添加新目录或日志文件。
以下是快速截图: OS X Console
11个回答

42

有一种方法可以将日志文件显示在控制台上。

您可以将日志文件或日志目录的符号链接添加到列表中的某个目录中。目录~/Library/Logs似乎是添加自己的日志文件的合理选择。


对于我自己,我想轻松访问apache2日志。我使用macports安装了apache2,默认的日志文件位于/opt/local/apache2/logs

因此,我只需创建到该目录的符号链接即可。

# cd ~/Library/Logs
# ln -s /opt/local/apache2/logs/ apache2 

现在我可以轻松使用控制台应用程序来访问日志。


3
看起来 Mountain Lion(OS X 10.8)移除了这个功能。控制台不再显示符号链接了。 - James Chevalier
在我的10.8.4版本中可以运行。 - Elliott B
8
在OSX 10.9上,我无法创建指向文件夹的符号链接,但是可以在文件夹内为每个文件创建符号链接。我将其用于MAMP日志记录。 - mems
这个方法可以用于单个文件,但无法处理整个文件夹。它没有显示出我的整个Xampp日志文件夹。 - pal4life
2
似乎在macOS 10.12上无法工作...尝试了文件夹和单个文件(MongoDB日志文件)。 - Gustavo Bezerra
显示剩余2条评论

8

我对macOS Sierra的解决方案:

第一步和最后一步,您必须从源(日志)目录创建一个硬链接到现有官方日志目录之一(例如console.app中看到的目录)。

我将我的~/Library/Logs目录用于此目的。

hln /usr/local/var/log /Users/dierk/Library/Logs/_usr_local_var_log

这是一个创建硬链接的好工具,最初由Sam发布。

简短介绍:

要安装Hardlink,请确保已安装homebrew,然后运行:

brew install hardlink-osx

安装后,使用以下命令创建硬链接:

hln [source] [destination]


无法尝试,因为我的日志在不同的设备上,我会收到“hln:跨设备链接”的错误提示,但我认为这是唯一的同设备解决方案。 - George
你不想创建一个目录的硬链接。https://askubuntu.com/a/525129 - Glutexo

4

我刚刚发现了一种对我非常有效的选项:

如果您打开终端并执行以下操作...

$ cd /Library/Logs

然后将其符号链接到新的日志目录。例如,我想要我的chroot'ed apache日志作为“www”

$ ln -s /chroot/apache/private/var/log www

然后重新打开Console.app

进入/Library/Logs,您将找到符号链接的目录。

;-)

Mohclips.

http://forums.macosxhints.com/showthread.php?t=35680


1
有什么想法可以获取具有类似于其他操作系统日志的列的日志文件吗? - Czar

1
在Mac OS 10.11中,您可能无法链接到日志文件夹,而是需要链接到控制台内每个日志的日志文件夹。
ln -s /opt/local/apache2/logs/error_log ~/Library/Logs/Apache2/error_log

1

我知道这是一篇很老的帖子,但这是我能让它工作的唯一方法。

cd /Library/Logs
sudo mkdir log_files
sudo ln -s /Users/USERNAME/Sites/website/logs/* log_files

1
自 Mavericks 开始,符号链接的行为已经改变了,所以 "ln -s" 不再适用。使用 hardlink-osx 代替,创建一个到您目录的硬链接(可以通过 Homebrew 安装)。

虽然这肯定可以运行,但创建硬链接通常不是一个好主意。请参见https://askubuntu.com/a/525129。 - Glutexo

1
在终端中运行以下命令... 添加任何日志文件目录:
defaults write com.apple.Console LogFolderPaths -array '~/Library/Logs/' '/Library/Logs/' '/var/log/' '/opt/local/var/log/'

这在Leopard 1.5.7上对我似乎没有起作用,我错过了什么吗? - Ted Naleid
抱歉,我在尝试之前就点了赞。那个默认值不存在。 - sholsinger

0

你可以使用console.app打开任何文本文件,并将其添加并保留。但是对于文件夹,目前还没有办法。


0

通过执行以下命令,我能够将文件硬链接到 ~/Library/logs:

ln /usr/local/var/logs/postgres.log ~/Library/logs

注意缺少 -s。

不过对于目录没有运气。 OSX Sierra 10.12.6


-1

刚刚尝试做了类似的事情。

我在终端中输入了这个命令,当时 Console.app 正在运行。

sudo mkdir -p /usr/local/var/log/apache2
sudo mv /private/var/log/apache2 /usr/local/var/log/apache2/apache2-old
sudo ln -s /usr/local/var/log/apache2 /private/var/log/apache2

现在每当我打开Console.app时,它就会崩溃。

真希望有一种方法可以将日志文件添加到文件中。您可以通过将文件夹拖放到Console.app上(给定目录路径作为参数)来实现此操作,但是添加的文件夹仅显示其直接内容,并且不允许递归进入文件夹。

---------以下编辑----------

没关系,我愚蠢地做了类似这样的事情,在Console.app中导致无限递归。

sudo mkdir -p /usr/local/var/log/apache2
sudo ln -s /private/var/log/apache2/apache2 /usr/local/var/log/apache2
sudo mv /private/var/log/apache2 /usr/local/var/log/apache2/apache2-old
sudo ln -s /usr/local/var/log/apache2 /private/var/log/apache2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接