Tech Blog

macOS で稼働させている Postfix ログの見方

開発環境として、macOS を使っている場合に macOS に最初からインストール済みの Postfix を利用してメールの送信テストをしている。

プログラムからメールの送信がうまくいかないため、Postfix のログを確認すると /var/log/mail にログが記録されていない状況だった。

調べてみると macOS の場合、 log コマンドを使ってログを確認する必要があった。

Postfix のリアルタイムのログを表示する方法は、いろいろなところで紹介されていますが、問題が発生した際に過去のログを探す方法が分からないと言われたので紹介しておきます。

リアルタイムのログを確認する方法

log stream --predicate  '(process == "smtpd") || (process == "smtp")' --info

過去のログを表示する方法は、man log するとマニュアルに記載されていた。

     show             Shows contents of the system log datastore, archive or a specific tracev3
                      file.  If a file or archive is not specified, the system datastore will be
                      shown.  If it is from a future system version that log cannot understand,
                      it exists with EX_DATAERR (65) and an error message.  The output contains
                      only default level messages unless --info and/or --debug are specified.

書式は、

     log show [--archive archive | --file file] [--predicate filter] [--source]
         [--style json | syslog] [--start date/time] [--end date/time] [--info] [--debug]
         [--last time [m|h|d]] [--timezone local | timezone]

ということなので、

log show --predicate '(process == "smtpd") || (process == "smtp")' --info --start '2019-09-01' --end '2019-09-30 23:59:59'

で、無事に表示することができ、ろぐから問題点を把握できた。