インストール
pybrakeをインストールする。
pip install pybrake
Requirement already satisfied: pybrake in MASK/lib/python3.8/site-packages (0.4.6) Requirement already satisfied: tdigest in MASK/lib/python3.8/site-packages (from pybrake) (0.5.2.2) Requirement already satisfied: accumulation-tree in MASK/lib/python3.8/site-packages (from tdigest->pybrake) (0.6.2) Requirement already satisfied: pyudorandom in MASK/lib/python3.8/site-packages (from tdigest->pybrake) (1.0.0)
環境変数を読み込む。
変数などは環境変数から読み込むようにした。通常はairbrakeのAPIへのURLは 必要ないが、errbitなどairbrakeのクローンとして動作するようなダミーサー バーを用いる場合はせていが必要になる。
import os
AIRBRAKE_API_HOST = os.environ.get("AIRBRAKE_API_HOST", "https://api.airbrake.io")
AIRBRAKE_ENVIRONMENT = os.environ["AIRBRAKE_ENVIRONMENT"]
AIRBRAKE_PROJECT_ID = os.environ["AIRBRAKE_PROJECT_ID"]
AIRBRAKE_PROJECT_KEY = os.environ["AIRBRAKE_PROJECT_KEY"]
設定
pybrake.Notifierをloggingのhandlerとして設定する。 loggerではairbrake用に設定したhandlerを利用する。
import logging.config
import pybrake
pybrake_notifier = pybrake.Notifier(
project_id=AIRBRAKE_PROJECT_ID,
project_key=AIRBRAKE_PROJECT_KEY,
environment=AIRBRAKE_ENVIRONMENT,
host=AIRBRAKE_API_HOST,
)
LOGGING_CONFIG = {
"version": 1,
"disable_existing_loggers": False,
"formatters": {
"raw": {
"format": "%(message)s",
},
},
"handlers": {
"airbrake": {
"()": "pybrake.LoggingHandler",
"notifier": pybrake_notifier,
"level": "INFO",
},
},
"loggers": {
"": {
"handlers": ["airbrake"],
"level": "INFO",
},
},
}
logging.config.dictConfig(LOGGING_CONFIG)
送信
logging.getLogger()でloggerを取得しログを送信するとairbrakeに内容が送られる。 extraの内容も同様に送信される。
import logging
logger = logging.getLogger(__name__)
logger.info("This is test message", extra={"foo": "bar"})