File size: 979 Bytes
7021daf
 
 
 
 
 
 
 
c60f0be
 
 
 
7021daf
c60f0be
7021daf
 
 
c60f0be
 
 
 
 
 
 
 
 
7021daf
 
 
c60f0be
7021daf
 
 
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
import os
import json
import logging
from logging.handlers import RotatingFileHandler
from datetime import datetime, timezone
from typing import Any, Dict, List, Optional

def setup_logger(name: str) -> logging.Logger:
    """
    Creates and returns a standard Python logger that writes to a rotating file.
    Max file size: 5MB. Keeps up to 3 backups.
    """
    logger = logging.getLogger(name)
    
    if not logger.handlers:
        logger.setLevel(logging.INFO)
        
        log_dir = "logs"
        if not os.path.exists(log_dir):
            os.makedirs(log_dir)
            
        file_handler = RotatingFileHandler(
            os.path.join(log_dir, "app.log"),
            maxBytes=5 * 1024 * 1024,
            backupCount=3
        )
        
        formatter = logging.Formatter('%(asctime)s | %(name)s | %(levelname)s | %(message)s')
        file_handler.setFormatter(formatter)
        
        logger.addHandler(file_handler)
        
    return logger