.\" Copyright (c) 1983, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)logger.1 8.1 (Berkeley) 6/6/93 .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .\" .\" Translated Sat Aug 28 JST 1993 by NetBSD jman proj. .\" Updated Sun Jun 18 JST 2000 by Kentaro Shirakata .\" Updated Tue Jan 9 13:53:03 JST 2001 .\" by Yuichi SATO .\" Updated Sat Nov 17 15:05:36 JST 2001 .\" by Yuichi SATO .\" Updated & Modified Sun Mar 2 16:39:57 JST 2003 by Yuichi SATO .\" Updated & Modified (util-linux 2.36) Mon Dec 14 15:44:47 JST 2020 .\" by Yuichi SATO .\" and Yoichi Chonan .\" .TH LOGGER 1 "November 2015" util\-linux "User Commands" .SH 名前 logger \- システムログにメッセージを書き込む .SH 書式 \fBlogger\fP [options] [\fImessage\fP] .SH 説明 \fBlogger\fP はシステムログにメッセージを記入する。 .sp 指定が任意の引き数 \fImessage\fP が存在すれば、それがログに書き込まれる。引き数 \fImessage\fP が存在せず、\fB\-f\fP オプションも指定されていない場合は、標準入力がログに記録される。 .SH オプション .TP \fB\-d\fP,\fB \-\-udp\fP データグラム (UDP) のみを使用する。デフォルトでは、 /etc/services で定義されている syslog ポートに接続が試みられる。それは、たいてい 514 番である。 .sp 接続先の指定については、\fB\-\-server\fP や \fB\-\-socket\fP もご覧いただきたい。 .TP \fB\-e\fP,\fB \-\-skip\-empty\fP ファイルを処理する際に空行を無視する。空行とは、文字を一つも含まない行のことである。 従って、ホワイトスペースのみからなる行は、 空行とは\fB見なされない\fP。なお、\fB\-\-prio\-prefix\fP オプションが指定された場合、優先度指定の部分は行の一部ではないことに気を付けていただきたい。 つまり、このモードでの空行とは、優先度を表す接頭辞 (たとえば、\fB<13>\fP) の後ろに文字が全く存在しない行のことである。 .TP \fB\-f\fP,\fB \-\-file \fP\fIfile\fP 指定した \fIfile\fP の内容をログに記入する。 このオプションは、コマンドラインにおけるメッセージ指定と併用することができない。 .TP \fB\-i\fP 各行に logger プロセスの PID を記入する。 .TP \fB\-\-id\fP[\fB=\fP\fIid\fP] 各行に logger プロセスの PID を記入する。指定が任意の引き数 \fIid\fP を指定すると、それが logger コマンドの PID の代わりに使用される。複数のメッセージを送出するスクリプトでは、\fB\-\-id=$$\fP (PPID) を使用するとよい。 なお、システムのロギングを下支えしているものが (たとえば、 /dev/log をリッスンしている \fBsystemd\fP が)、ローカルソケットの資格情報 (credentials) に従って、メッセージ中の指定された PID を上書きしてしまうことがあるのに注意していただきたい。\fBlogger\fP は、そうしたソケットの資格情報の値を、指定された \fIid\fP にすることができるわけだが、それは、ユーザがルート権限を持ち、しかも指定された PID を持つプロセスが存在するときだけであって、 さもなければ、ソケットの資格情報は変更されず、その問題は暗黙裡に無視されるのである。 .TP \fB\-\-journald\fP[\fB=\fP\fIfile\fP] systemd のジャーナルに書き込みをする。記入事項 (entry) は、\fIfile\fP を指定していれば、そのファイルから読み込まれ、指定していなければ、標準入力から読み込まれる。 各行は、journald の解するフィールドで始まっていなければならない。詳細については \fBsystemd.journal\-fields\fP(7) をご覧いただきたい。MESSAGE_ID フィールドを使用するのは、記入事項の検索を容易にするので、一般によい考えである。 例を二つ挙げよう。 .IP .nf \fBlogger \-\-journald <) で囲まれた 10 進数であり、 ファシリティとレベルの両方をエンコードしたものである。数値は、ファシリティを (訳注: その数値表現を) 8 倍し、それにレベルを加えて作る。たとえば、\fBlocal0.info\fP なら、ファシリティは 16、レベルは 6 なので \fB<134>\fP になる。 .sp 接頭辞がファシリティを含んでいない場合、ファシリティは、\fB\-p\fP オプションで指定したものがデフォルトである。 同様に、接頭辞が全く指定されていない場合、その行は、\fB\-p\fP で指定された優先度 \fIpriority\fP を使ってログに記録される。 .sp このオプションは、コマンドライン引き数として指定したメッセージに対しては働かない。 .RS .IP "[\fB訳注\fP]" 8 別の角度から説明すると、 これは、入力するメッセージの行中でファシリティとレベルを指定する方法だと言えるだろう。 メッセージをファイル、または標準入力から入力するとき (コマンドラインの引き数としてではない)、\fBlogger\fP コマンドに \fB\-\-prio\-prefix\fP オプションを付け、メッセージ各行の行頭には \fB<134>\fP などと書いておく。そうすると、\fBlogger\fP がその行を優先度 \fBlocal0.info\fP のメッセージなどと解釈して、適切なログファイルに送ってくれるのである。 \fB<134>\fP などの接頭辞がログに書き込まれるわけではない。 .RE .TP \fB\-\-rfc3164\fP リモートサーバにメッセージを送るのに RFC 3164 の BSD syslog プロトコルを使用する。 .TP \fB\-\-rfc5424\fP[\fB=\fP\fIwithout\fP] リモートサーバにメッセージを送るのに RFC 5424 の syslog プロトコルを使用する。 指定が任意の \fIwithout\fP という引き数には、\fBnotq\fP, \fBnotime\fP, \fBnohost\fP という値をコンマで区切ったリストが使用できる。 \fBnotq\fP という値は、送信するメッセージに時間品質構造化データ (the time\-quality structured data) を記入しないようにする。 この時間品質情報が示すのは、ローカルクロックが (訳注: 信用できる外部の時刻サーバとメッセージ送信時に) 同期されていたかどうか、及び、タイムスタンプが (訳注: 同期と同期の間に) ずれるかもしれない最大のマイクロセコンド数である。 時間品質は、\fB\-\-sd\-id timeQuality\fP が指定された場合にも自動的に抑制される。 \fBnotime\fP という値は (暗黙裡に \fBnotq\fP も設定する)、ISO\-8601 フォーマットの省略なしの送信側タイムスタンプを記入しないようにする。 マイクロセコンドやタイムゾーンを含むフォーマットのことである。 \fBnohost\fP という値は、メッセージのヘッダに \fBgethostname\fP(2) の情報を入れないようにする。 .IP RFC 5424 プロトコルは、バージョン 2.26 以来、\fBlogger\fP のデフォルトになっている。 .TP \fB\-s\fP,\fB \-\-stderr\fP メッセージをシステムログだけでなく、標準エラーにも出力する。 .TP \fB\-\-sd\-id \fP\fIname\fP[\fB@\fP\fIdigits\fP] RFC 5424 メッセージヘッダで使う構造化データ要素の識別名 (a structured data element ID) を指定する。新しい要素を導入するには、このオプションを \fB\-\-sd\-param\fP の前で使わなければならない。構造化データ要素の数には上限がない。ID (識別名。\fIname\fP には \fB@\fP\fIdigit\fP が続くこともある) は、大文字小文字を区別し、要素のタイプと用途を一意に同定している。同じ ID は、一つのメッセージに 1 回しか現れてはならない。\fB@\fP\fIdigit\fP の部分は、ユーザが定義した非標準的な ID では必須である。 現在 \fBlogger\fP が (訳注: \fB\-\-rfc5424\fP オプションを指定したときにデフォルトで) 生成するのは、標準要素 \fBtimeQuality\fP のみである。RFC 5424 には、そのほか \fBorigin\fP 要素 と \fBmeta\fP 要素が記述されている (前者には、ip, enterpriseId, software, swVersion といったパラメータが、後者には、sequenceId, sysUpTime, language といったパラメータがある)。こうした要素 ID は、\fB@\fP\fIdigits\fP という接尾辞なしで指定することができる。 .TP \fB\-\-sd\-param \fP\fIname\fP\fB="\fP\fIvalue\fP\fB"\fP 構造化データ要素のパラメータを、名前と値の組み合わせで指定する。 このオプションを使うときは、\fB\-\-sd\-id\fP の後ろに置かなければならない。なお、同じ要素について、2 回以上指定することもできる。\fIvalue\fP を囲む引用符は必須であり、しかも、 コマンドライン上ではエスケープしなければならないことに注意していただきたい。 .IP .nf \fBlogger \-\-rfc5424 \-\-sd\-id zoo@123 \e \-\-sd\-param tiger=\e"hungry\e" \e \-\-sd\-param zebra=\e"running\e" \e \-\-sd\-id manager@123 \e \-\-sd\-param onMeeting=\e"yes\e" \e "this is message"\fP .fi .IP 上のコマンドは、次のようなメッセージを生成する。 .IP .\".nf .\" this long line gets cut of in the output of "troff", and wraps .\" in "nroff" .\".fi \fB<13>1 2015\-10\-01T14:07:59.168662+02:00 ws kzak \- \- [timeQuality tzKnown="1" isSynced="1" syncAccuracy="218616"][zoo@123 tiger="hungry" zebra="running"][manager@123 onMeeting="yes"] this is message\fP .TP \fB\-S\fP,\fB \-\-size \fP\fIsize\fP メッセージの許可される最大のサイズを \fIsize\fP にする。デフォルトは、1KiB の文字である。これは、昔から使われている上限であり、RFC 3167 で規定されている。なお、RFC 5424 で、この上限は融通が利くようになった。 受信側が RFC 5424 に準じているならば、少なくとも 4KiB のメッセージを処理できると考えて、まず間違いがない。 どんなタイプの syslog プロトコルを使っていようと、たいていの受信側が 1 KiB より大きいメッセージを受け入れる。従って、この \fB\-\-size\fP オプションが (\fB\-\-rfc5424\fP を使用した場合だけではなく) あらゆる場合に logger に対して働くことになる。 注意: メッセージサイズの上限というのは、syslog のヘッダを含む、メッセージサイズ全体の上限である。 ヘッダのサイズは、選択したオプションやホスト名の長さによって変わってくる。 大雑把に言って、ヘッダが 50 から 80 文字 (characters) より長いことはあまりない。メッセージの最大ザイズを選択するときは、 受信側の方でもその最大サイズをサポートするようにしておくことが重要である。 さもないと、メッセージは、尻尾がちょん切られてしまうかもしれない。 もう一度大雑把に言うと、2 から 4 KiB のメッセージサイズなら、たいてい問題がないはずだ。 それより大きい場合は、ちゃんと動作するか確認するべきである。 .TP \fB\-\-socket\-errors\fP[\fB=\fP\fImode\fP] Unix ソケット接続に関するエラーを表示する。\fImode\fP の値は、\fBoff\fP, \fBon\fP, \fBauto\fP の何れかである。\fImode\fP が \fBauto\fP の場合、\fBlogger\fP は、init プロセスが systemd かどうか検出しようとする。そして、もしそうならば、 /dev/log がブートの早い段階から使用可能になっていると想定する。 他の init システムで、/dev/log を欠いている場合、ここで述べているようなエラーが起きることはない。そのへんは、openlog(3) システムコールを使用するメッセージ処理と同じことである。\fBlogger\fP(1) も、 バージョン 2.26 より前は openlog を使用していた。そのため、Unix ソケットに送信したメッセージが消失しても、当時は検出できなかったのである。 .sp デフォルトの mode は、\fBauto\fP である。エラー表示が有効ではないと、メッセージの消失があっても、通知されず、\fBlogger\fP の実行は、成功のステータスで終わることになる。 .TP \fB\-T\fP,\fB \-\-tcp\fP ストリーム (TCP) のみを使用する。デフォルトでは、/etc/service で定義されている \fIsyslog\-conn\fP ポートに接続が試みられる。それは、たいてい \fI601\fP 番である。 .sp 接続先の指定については、\fB\-\-server\fP や \fB\-\-socket\fP もご覧いただきたい。 .TP \fB\-t\fP,\fB \-\-tag \fP\fItag\fP ログに記録されるすべての行に \fItag\fP という指標を付ける。デフォルトのタグは、端末にログインしているユーザの名前 (あるいは、実効ユーザ ID に基づいたユーザ名) である .TP \fB\-u\fP,\fB \-\-socket \fP\fIsocket\fP システムログのソケットの代わりに、指定された \fIsocket\fP に書き込む。 .TP \fB\-\-\fP 引き数のリストの終わりを示す。これを使えば、\fImessage\fP をハイフン (\-) で始めることができる。 .TP \fB\-V\fP,\fB \-\-version\fP バージョン情報を表示して終了する。 .TP \fB\-h\fP,\fB \-\-help\fP ヘルプを表示して終了する。 .SH 終了ステータス \fBlogger\fP ユーティリティは、実行に成功すると、0 の終了ステータスで、エラーが起きた場合は、0 より大きい終了ステータスで終了する。 .SH ファシリティとレベル .IP "[\fB訳注\fP]" 以下、ファシリティやレベル名の後ろに、カッコに入れて、数値による表現を付けておく。 こうした数値は、\fB\-\-prio\-prefix\fP で使用できる。 .PP 有効なファシリティ名 (メッセージの分類): .IP .nr WI \n(.lu-\n(.iu-\w'\fBauthpriv\fR'u-3n .TS tab(:); l lw(\n(WIu). \fBauth\fP(4) \fBauthpriv\fP(10):取り扱いに注意を要するセキュリティ情報用 \fBcron\fP(9) \fBdaemon\fP(3) \fBftp\fP(11) \fBkern\fP(0):T{ ユーザスペースのプロセスからは生成できない。たとえ \fBkern\fP を指定しても、自動的に \fBuser\fP に変更される T} \fBlpr\fP(6) \fBmail\fP(2) \fBnews\fP(7) \fBsyslog\fP(5) \fBuser\fP(1) \fBuucp\fP(8) \fBlocal0\fP(16) \fB to:\fP \fBlocal7\fP(23) \fBsecurity\fP:\fBauth\fP の同義語で、非推奨 .TE .PP 有効なレベル名 (重大度): .IP .TS tab(:); l l. \fBemerg\fP(0) \fBalert\fP(1) \fBcrit\fP(2) \fBerr\fP(3) \fBwarning\fP(4) \fBnotice\fP(5) \fBinfo\fP(6) \fBdebug\fP(7) \fBpanic\fP:\fBemerg\fP の同義語で、非推奨 \fBerror\fP:\fBerr\fP の同義語で、非推奨 \fBwarn\fP:\fBwarning\fP の同義語で、非推奨 .TE .PP こうしたファシリティやレベルの優先順位や目的については、\fBsyslog\fP(3) を参照していただきたい。 .SH 準拠 この \fBlogger\fP コマンドは IEEE Std 1003.2 ("POSIX.2") に準拠しているはずである。 .SH 用例 \fBlogger System rebooted\fP .br \fBlogger \-p local0.notice \-t HOSTIDM \-f /dev/idmc\fP .br \fBlogger \-n loghost.example.com System rebooted\fP .SH 作者 オリジナルの \fBlogger\fP コマンドが書かれたのは、カルフォルニア大学で、1983 年から 1993 年のことだった。その後、次の者たちが書き直した。 .PP Karel Zac .br Rainer Gerhards .br Sami Kerola .SH 関連項目 \fBjournalctl\fP(1), \fBsyslog\fP(3), \fBsystemd.journal\-fields\fP(7) .SH 入手方法 この logger コマンドは Util\-linux パッケージの一部であり、Linux Kernel Archive から入手できる。