Skip to content

Commit

Permalink
* add exclude fields parameter
Browse files Browse the repository at this point in the history
* better logging
  • Loading branch information
eloyfelix committed Jan 17, 2025
1 parent f45056f commit ccfde8c
Show file tree
Hide file tree
Showing 4 changed files with 221 additions and 114 deletions.
61 changes: 46 additions & 15 deletions cbl_migrator/logs.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,48 @@
import logging
import logging.handlers
import os

logger = logging.getLogger("cbl_migrator")
logger.setLevel(logging.DEBUG)
# create file handler which logs even debug messages
fh = logging.FileHandler("cbl_migrator.log")
fh.setLevel(logging.DEBUG)
# create console handler with a higher log level
ch = logging.StreamHandler()
ch.setLevel(logging.WARNING)
# create formatter and add it to the handlers
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
ch.setFormatter(formatter)
fh.setFormatter(formatter)
# add the handlers to logger
logger.addHandler(ch)
logger.addHandler(fh)
def setup_logger(name="cbl_migrator", log_file="cbl_migrator.log", level=logging.DEBUG):
"""Configure and return a logger with both file and console handlers."""
logger = logging.getLogger(name)
logger.setLevel(level)

# Remove existing handlers to avoid duplicates
for handler in logger.handlers[:]:
logger.removeHandler(handler)

# File handler with rotation
log_dir = os.path.dirname(log_file)
if log_dir and not os.path.exists(log_dir):
os.makedirs(log_dir)

file_handler = logging.handlers.RotatingFileHandler(
log_file,
maxBytes=10*1024*1024, # 10MB
backupCount=5
)
file_handler.setLevel(logging.DEBUG)

# Console handler
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.INFO)

# Create formatters and add them to the handlers
file_formatter = logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)s - [%(filename)s:%(lineno)d] - %(message)s'
)
console_formatter = logging.Formatter(
'%(asctime)s - %(levelname)s - %(message)s'
)

file_handler.setFormatter(file_formatter)
console_handler.setFormatter(console_formatter)

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

return logger

# Create the default logger instance
logger = setup_logger()
Loading

0 comments on commit ccfde8c

Please sign in to comment.