File size: 1,232 Bytes
b5edbe6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9b92ec5
b5edbe6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9b92ec5
 
 
 
 
b5edbe6
 
 
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
41
42
import logging
from logging.handlers import RotatingFileHandler

# Configure logging
logger = logging.getLogger("food_analyzer")
logger.setLevel(logging.DEBUG)

# Create a file handler that logs debug and higher level messages
file_handler = RotatingFileHandler("food_analyzer.log", maxBytes=5*1024*1024, backupCount=3)
file_handler.setLevel(logging.DEBUG)

# Create a console handler that logs error and higher level messages
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.ERROR)

# Create a formatter and set it for both handlers
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s - %(pathname)s:%(lineno)d")
file_handler.setFormatter(formatter)
console_handler.setFormatter(formatter)

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

def log_debug(message: str):
    logger.debug(message)

def log_info(message: str):
    logger.info(message)

def log_warning(message: str):
    logger.warning(message)

def log_error(message: str, exc: Exception = None):
    if exc:
        logger.error(message, exc_info=True)
    else:
        logger.error(message)

def log_critical(message: str):
    logger.critical(message)