File size: 1,103 Bytes
ed0b977
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

import logging
import sys
from logging.handlers import RotatingFileHandler


def setup_logger():
    # Formatting
    log_format = logging.Formatter(
        '%(asctime)s - %(levelname)s - %(module)s - %(message)s (%(funcName)s:%(lineno)d)'
    )

    # Base Logger
    logger = logging.getLogger("swiftquery")
    logger.setLevel(logging.DEBUG)  # Set base level to debug

    # --- Handlers ---

    # 1. Console Handler (for stdout)
    console_handler = logging.StreamHandler(sys.stdout)
    console_handler.setLevel(logging.INFO)  # Only INFO and above for console
    console_handler.setFormatter(log_format)

    # 2. File Handler (for logging to a file)
    # Rotates logs, keeping 5 backups of 5MB each
    file_handler = RotatingFileHandler(
        'app.log', maxBytes=5*1024*1024, backupCount=5
    )
    file_handler.setLevel(logging.DEBUG)  # DEBUG and above for file
    file_handler.setFormatter(log_format)

    # Add handlers to the logger
    logger.addHandler(console_handler)
    logger.addHandler(file_handler)

    return logger

# Instantiate the logger
logger = setup_logger()