44

/var/log/messagesLinux では、私が作成した単純なシェル スクリプトで、単純なメッセージをファイルに書き込む方法を知っています。

#!/bin/bash
logger "have fun!"

デフォルトのファイルにメッセージをスローするのをやめ/var/log/messagesて、独自のファイルを作成したいと思います。

私はこれを試しました:

#!/bin/bash
logger "have more fun" > /var/log/mycustomlog

それはまだにログインし/var/log/messagesます。を作成しました/var/log/mycustomlogが、空です。

私が見逃しているものを見た人はいますか?

4

5 に答える 5

42

loggersyslog ファシリティにログを記録します。メッセージを特定のファイルに送りたい場合は、それに応じて syslog 構成を変更する必要があります。次のような行を追加できます。

local7.*   -/var/log/mycustomlog

そしてsyslogを再起動します。次に、次のようにログに記録できます。

logger -p local7.info "information message"
logger -p local7.err "error message"

メッセージは、適切なログ レベルで目的のログ ファイルに表示されます。

syslog 設定を変更せずに、次のように使用できますlogger

logger -s "foo bar" >> /var/log/mycustomlog

これにより、メッセージを (syslog に記録するだけでなく) STDERR にも出力するように指示loggerされるため、STDERR をファイルにリダイレクトできます。ただし、メッセージはとにかくsyslogを介してすでにログに記録されているため(デフォルトの優先度でuser.notice)、まったく無意味です。

于 2013-02-23T22:23:35.477 に答える
37

@chepner は、loggerメッセージのログ記録に専念していることを強調しています。

@Thomas Haratyk は、単純にecho.

当時、私は学んshell-scriptingでいるのでエコーについて知りませんでしたが、彼は正しかったです。

私の簡単な解決策は次のとおりです。

#!/bin/bash
echo "This logs to where I want, but using echo" > /var/log/mycustomlog

上記の例では、> の後にファイルを上書きします。

したがって、次のようにそのファイルに追加できます。

#!/bin/bash
echo "I will just append to my custom log file" >> /var/log/customlog

みんなありがとう!

  • 余談ですが、個人的なログを保存するのは単に私の個人的な好み/var/log/ですが、他にも良いアイデアがあると確信しています。また、デーモンを作成していない/var/log/ため、カスタム ログ ファイルに最適な場所ではない可能性があります。(ただ言って)
于 2013-02-23T21:55:13.583 に答える
6

シェルのグローバル変数を介したシェル スクリプトのロギングについては、かなりの詳細があります。シェルスクリプトで同様の種類のログをエミュレートできます : http://www.cubicrace.com/2016/03/effective-logging-mechnism-in-shell.htmlエラー。スクリプトのエントリ、スクリプトの終了、関数のエントリ、関数の終了などの詳細をトレースします。

サンプルログ: ここに画像の説明を入力

于 2016-04-14T04:43:11.377 に答える
2

logger の man ページが表示された場合:

$ man logger

LOGGER(1) BSD 一般コマンドマニュアル LOGGER(1)

NAME logger — syslog(3) システム ログ モジュールへのシェル コマンド インターフェイス

形式 ロガー [-isd] [-f ファイル] [-p pri] [-t タグ] [-u ソケット] [メッセージ ...]

説明 ロガーは、システム ログにエントリを作成します。これは、syslog(3) システム ログ モジュールへのシェル コマンド インターフェイスを提供します。

システムログに記録されることを明確に示しています。ファイルにログを記録したい場合は、">>" を使用してログ ファイルにリダイレクトできます。

于 2013-02-23T22:10:15.020 に答える