adding logfile output
This commit is contained in:
parent
53025b8eee
commit
f76b355c16
2
MyApp.py
2
MyApp.py
@ -4,7 +4,7 @@ from helpers import customLogger
|
||||
|
||||
|
||||
def test_logging():
|
||||
logger = customLogger('customLogger')
|
||||
logger = customLogger('customLogger','MyApp.log')
|
||||
|
||||
logger.debug("debug message")
|
||||
logger.info("info message")
|
||||
|
Binary file not shown.
@ -1,4 +1,5 @@
|
||||
import logging
|
||||
from logging.handlers import RotatingFileHandler
|
||||
import sys
|
||||
import re
|
||||
|
||||
@ -17,20 +18,25 @@ class ColorCodes:
|
||||
class customLogger(object):
|
||||
_logger = None
|
||||
|
||||
def __new__(cls, name:str, level=logging.DEBUG):
|
||||
def __new__(cls, name:str, log_file_name:str, level=logging.DEBUG):
|
||||
if cls._logger is None:
|
||||
cls._logger = logging.getLogger(name)
|
||||
# Define a Logging Format
|
||||
_format = _format = ColorizedArgsFormatter('%(asctime)s - %(levelname)-8s ' + name + ' %(filename)s in %(funcName)s:%(lineno)d %(message)s')
|
||||
_file_format = LogfileFormatter('%(asctime)s - %(levelname)-8s ' + name + ' %(filename)s in %(funcName)s:%(lineno)d %(message)s')
|
||||
# Create Console Output
|
||||
_handler = logging.StreamHandler(sys.stdout)
|
||||
# Create Logfile Output
|
||||
_file_hanlder = RotatingFileHandler(log_file_name, maxBytes=10240000, backupCount=3 )
|
||||
# Add the Format to the Handler
|
||||
_handler.setFormatter(_format)
|
||||
_file_hanlder.setFormatter(_file_format)
|
||||
# Set Loglevel to the Desired One.
|
||||
_handler.setLevel(level)
|
||||
|
||||
_file_hanlder.setLevel(level)
|
||||
# Finally add the Handler to the Logger:
|
||||
cls._logger.addHandler(_handler)
|
||||
cls._logger.addHandler(_file_hanlder)
|
||||
|
||||
# Set the Log Level of the Logger.
|
||||
cls._logger.setLevel(level)
|
||||
@ -102,6 +108,29 @@ class ColorizedArgsFormatter(logging.Formatter):
|
||||
record.args = orig_args
|
||||
return formatted
|
||||
|
||||
class LogfileFormatter(logging.Formatter):
|
||||
|
||||
def __init__(self, fmt: str):
|
||||
super().__init__()
|
||||
|
||||
_format = fmt
|
||||
self.formatter = logging.Formatter(_format)
|
||||
|
||||
@staticmethod
|
||||
def rewrite_record(record: logging.LogRecord):
|
||||
msg = record.msg
|
||||
record.msg = msg.format(*record.args)
|
||||
record.args = []
|
||||
|
||||
def format(self, record):
|
||||
orig_msg = record.msg
|
||||
orig_args = record.args
|
||||
self.rewrite_record(record)
|
||||
formatted = self.formatter.format(record)
|
||||
record.msg = orig_msg
|
||||
record.args = orig_args
|
||||
return formatted
|
||||
|
||||
|
||||
class BraceFormatStyleFormatter(logging.Formatter):
|
||||
def __init__(self, fmt: str):
|
||||
|
Loading…
Reference in New Issue
Block a user