コンテンツにスキップ

サンプル

基本的なロギング

基本的なロギングの例です。

import logkiss as logging

# ロガーの取得
logger = logging.getLogger(__name__)

# ログの出力
logger.warning('これは警告メッセージです')
logger.info('これは情報メッセージです')
logger.error('これはエラーメッセージです')

既存のロガーの拡張

既存のロガーをlogkissで拡張する例です。

import logging as standard_logging
import logkiss as logging

# 標準ロガーの設定
standard_logger = standard_logging.getLogger("standard")
standard_logger.setLevel(standard_logging.INFO)

# logkissのKissConsoleHandlerを追加
console_handler = logging.KissConsoleHandler()
standard_logger.addHandler(console_handler)

# ログの出力
standard_logger.info("標準ロガーからの情報メッセージ(色付き)")
standard_logger.warning("標準ロガーからの警告メッセージ(色付き)")

色の無効化

色を無効化する例です。

import logkiss as logging

# ロガーの取得
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

# 既存のハンドラーをクリア
for handler in logger.handlers[:]:
    logger.removeHandler(handler)

# 色を無効化したフォーマッターを作成
formatter = logging.ColoredFormatter(use_color=False)

# KissConsoleHandlerを追加し、フォーマッターを設定
console_handler = logging.KissConsoleHandler()
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)

# ログの出力
logger.info("色なしの情報メッセージ")
logger.warning("色なしの警告メッセージ")
logger.error("色なしのエラーメッセージ")

AWS CloudWatchの例

AWS CloudWatchにログを送信する例です。

import os
import time
import hashlib
import logkiss as logging
from logkiss.handlers import AWSCloudWatchHandler

# 環境変数からAWS設定を取得
AWS_PROFILE = os.environ.get("AWS_PROFILE")
AWS_REGION = os.environ.get("AWS_DEFAULT_REGION", "ap-northeast-1")

# クリーンアップフラグ(テスト後にリソースを削除するかどうか)
CLEAN_UP = True

# 一意のロググループ名を生成
timestamp = int(time.time())
unique_hash = hashlib.md5(f"{timestamp}".encode()).hexdigest()[:8]
log_group_name = f"logkiss-sample-{timestamp}-{unique_hash}"
log_stream_name = "sample-stream"

# ロガーの設定
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

# コンソールハンドラーを追加
console_handler = logging.KissConsoleHandler()
logger.addHandler(console_handler)

# AWS CloudWatchハンドラーを追加
aws_handler = AWSCloudWatchHandler(
    log_group_name=log_group_name,
    log_stream_name=log_stream_name,
    region_name=AWS_REGION,
    profile_name=AWS_PROFILE
)
logger.addHandler(aws_handler)

# ログの出力
logger.info(f"AWS CloudWatchにログを送信しています(グループ: {log_group_name})")
logger.warning("これは警告メッセージです")
logger.error("これはエラーメッセージです")

# クリーンアップ
if CLEAN_UP:
    logger.info("リソースをクリーンアップしています...")
    aws_handler.cleanup()
    logger.info("クリーンアップ完了")

Google Cloud Loggingの例

Google Cloud Loggingにログを送信する例です。

import os
import time
import hashlib
import logkiss as logging
from logkiss.handlers import GCPCloudLoggingHandler

# 環境変数からGCP設定を取得
GCP_PROJECT_ID = os.environ.get("GCP_PROJECT_ID")

# クリーンアップフラグ(テスト後にリソースを削除するかどうか)
CLEAN_UP = True

# 一意のログ名を生成
timestamp = int(time.time())
unique_hash = hashlib.md5(f"{timestamp}".encode()).hexdigest()[:8]
log_name = f"logkiss-sample-{timestamp}-{unique_hash}"

# ロガーの設定
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

# コンソールハンドラーを追加
console_handler = logging.KissConsoleHandler()
logger.addHandler(console_handler)

# GCP Cloud Loggingハンドラーを追加
gcp_handler = GCPCloudLoggingHandler(
    project_id=GCP_PROJECT_ID,
    log_name=log_name
)
logger.addHandler(gcp_handler)

# ログの出力
logger.info(f"Google Cloud Loggingにログを送信しています(ログ名: {log_name})")
logger.warning("これは警告メッセージです")
logger.error("これはエラーメッセージです")

# クリーンアップ
if CLEAN_UP:
    logger.info("リソースをクリーンアップしています...")
    gcp_handler.cleanup()
    logger.info("クリーンアップ完了")