Mac OS Xでは、ターミナルからConsole.appにログインするにはどうすればよいですか?


8

/dev/consoleMac OSXのいくつかのスクリプトでの使用を見てきましたが、それがどのように使用されているのかはわかりません。Console.appを確認したところ、テストコマンドの結果が表示されませんでした。

エコーテスト> / dev / console

そこに印刷されているので、それはどこに行くのですか、それともどのように使用しますか?


@Qosmo。この質問はスーパーユーザーに対して100%有効であり、移行する必要や理由はありません。
BinaryMisfit

有効であることは、そこでより良いサービスが提供されることを意味しませんか?なぜ作成されたのですか?とにかくそれは単なる提案です...
ブレイブ初心者

回答:


7

/dev/consoleデバイスは、特にに関連していないコンソールアプリケーション。

Mac OS X 10.6では、コンソールアプリケーションは2種類のデータソースを読み取ります。通常のログファイル(例:のファイル/var/log/)と、(Apple拡張)syslog機能を介してログに記録されるメッセージです。

監視するログファイルがある場合は、[ファイル ] > [ 開く ]メニュー項目(⌘O)を使用して、コンソールでファイルを表示できます。
注:コンソールのファイルリストからファイルを削除する唯一の方法は、[ファイル] > [ ゴミ箱に移動 ]メニュー項目(⌘⌫)を使用することです。Consoleでファイルの監視を停止したいだけの場合は、ファイルをゴミ箱から取り出す準備をしてください。

あなたは使用することができたsyslog syslogファシリティにメッセージを送信するコマンドラインプログラムを。

syslog -s Your message goes here. \(quote special chars for the shell'!)'

ただし、デフォルトの設定では、このメッセージは「レベル」が低すぎて重要ではないため、どのコンソールビューにも表示されません。この最初のフィルタリングは、syslogdによるものです。asl.confsyslog.confファイルで構成されます。レベルが低すぎる場合(およびsyslog -sデフォルトで最低レベルに設定されている場合)、デフォルトの構成ではほとんどのメッセージが保存されません。コンソールは、syslogdによって保存されたメッセージのみを表示できます。

次の-lオプションを使用して、「レベル」フィールドの値を変更できます。

syslog -s -l notice This message should show up in \"All Messages\" \
  with a Facility of syslog.

noticeレベルは、そのため(デフォルト)最低レベルであるsyslogdがほとんどのメッセージを格納します。

このように生成されたメッセージは、Consoleの組み込み「All Messsages」データベース検索
に表示さAll Messages.aslqueryれます(ファイルは、/Applications/Utilities/Console.app/Contents/Resources/ASLQueries/技術的には、Facilityフィールドに空の文字列が「含まれている」メッセージに制限されますが、この条件は、任意のFacilityによって簡単に満たされます。値)。

コンソールの組み込みの「コンソールメッセージ」データベース検索にメッセージを表示したい場合は、もう少し具体的にする必要があります。等しいファシリティフィールドを持つ(保存された)メッセージのみを表示します(com.apple.consoleのファイルConsole Messages.aslqueryを参照/Applications/Utilities/Console.app/Contents/Resources/ASLQueries/)。ファシリティフィールドを設定するオプションにより、そのようなメッセージをsyslogで生成でき-kます。

syslog -s -k Facility com.apple.console \
          -k Level notice \
          -k Message 'This will show up in "Console Messages"'

を使用する場合-k、すべてのオプションとメッセージ自体を-k key value引数のセットで指定する必要があります(-lレベルの設定には使用できません)。つまり、メッセージを単一の引数にして、メッセージフィールドの値にする必要があります。


それで、「ロガー」コマンドは何のために使われるのですか?syslogの一部ですか?
cwd 2011年

@cwd:syslog機能も使用します。Appleのsyslogには、syslog(3)asl(3)の 2つの主要なインターフェースがあります。前者は最近のほとんどのUnix-yシステムではかなり標準的です。ロガーはそれを使用します。後者はアップル固有の拡張です。syslogのコマンドは、それを使用しています。コンソールは両方からのメッセージを認識しますが、「コンソールメッセージ」の検索には、アップル拡張機能の値(ロガーでは作成できない)が必要です。
Chris Johnsen、2009年

7

私が使う:

logger Hello World

いつも私のために働きます。"hello world"をsyslogにダンプします。これはconsole.appに表示されます。


0

私は肯定的ではありませんが、ログインウィンドウのユーザー名フィールドに> consoleが入力されたときに呼び出されるデバイスである可能性があります。上記を入力すると、CLIがダンプされます。


0

選択したファイルに書き込み、コンソールアプリケーションで表示できます。

ユーザーレベルのログを使用する場合:

echo "test" > /Users/$USER/Library/Logs/your_script.log

または、すべてのユーザーに読み込まれるもの:

echo "test" > /Library/Logs/your_script.log
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.