今回の内容はログを自作しながら学ぶでGolangで書いたコードをパイソン(Python3)のコードへの書き換えになります。
ログの書き込みは下記のようにします。
ログの書き込み先:/var/log/mylogger/app.log
myloggerディレクトリは今回の自作のログの出力用のディレクトリになります。
最初にmyloggerディレクトリを作成しておきます。
$ sudo mkdir /var/log/mylogger $ sudo chown root:adm /var/log/mylogger $ sudo chmod g+ws,o+rx /var/log/mylogger
myloggerディレクトリを作成したら、ディレクトリの権限を所有者をrootにして、グループを、admにします。
myloggerディレクトリにグループには書き込み権限(w)とSGIDあり(s)を付与します。
一般ユーザにも読み込み(r)と書き込み(w)の権限を付与します。
/home/pi/log.pyを作成して、
import logging
import os
from pathlib import Path
# 自作のロガーの設定
dir_path = "/var/log/mylogger"
file_name = "app.log"
full_path = os.path.join(dir_path, file_name)
try:
# ロガーの設定
logging.basicConfig(
filename=full_path,
level=logging.INFO,
format='%(asctime)s %(message)s',
datefmt='%Y/%m/%d %H:%M:%S'
)
# 書き込み
logging.info("Hello, my-logger test by python3.")
except PermissionError:
print(f"Error: Permission denied to write to {full_path}")
except Exception as e:
print(f"Failed to create log file: {e}")
のコードを保存します。
下記のコマンドでコードを実行してみます。
$ python3 /home/pi/log.py
コマンド実行後に
$ less /var/log/mylogger/app.log
を実行してみますと、
YYYY/MM/DD HH:MM:SS Hello, my-logger test by python3.
といった値が記録されています。