From f76b355c16dfd584b2312ca1efcd89db06e5a7d1 Mon Sep 17 00:00:00 2001 From: Dominik Kuhn Date: Mon, 17 Oct 2022 15:43:16 +0200 Subject: [PATCH] adding logfile output --- MyApp.py | 2 +- .../__pycache__/customLogger.cpython-39.pyc | Bin 4277 -> 5230 bytes helpers/customLogger.py | 33 ++++++++++++++++-- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/MyApp.py b/MyApp.py index e26b463..3cd897b 100644 --- a/MyApp.py +++ b/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") diff --git a/helpers/__pycache__/customLogger.cpython-39.pyc b/helpers/__pycache__/customLogger.cpython-39.pyc index 6e78fde76326e9fdd199e68d889119ca2746e449..bfb0f72f33e0beb0e2c1c4b86e5b1469c4b100ea 100644 GIT binary patch delta 2385 zcma)8+iw(A7(eICb$4f%Whu5*T0mNGXsncg7mD1%&gDD5 z?=t;v`yY>$s>NcSz*B$yZ1BP0jnbA*3$&1gG$J1UvWU(zkI~Ggd765sd-^F7YN7rf z3H4>>8K4=V37W~xWzDldw?Z3qo0EnOmK<1eVIC~`o+S^KLg;|S=~)UPJ->~(#e3+{ ztV`2P=bA}1sV~${)+2tpx)4TO-1&G5HOnwTl;!ty#?U}Cv{`IgqRtx9lEx6m?`HIrdCScUR^bIudynm4sq z$Lr+CEpiVja+zn(SKm4IZo*@)aG@GpTzqS$xww$Hj`XzsxwH%n;CAr~Tx81AwWcd>kb zfnWCh&7j0v00_-fhYip&b6APxX4br3LOMl&k%W#zk+#h_M`?q?k^ZhE-w9 zKb_5;17Hj&zUn>bERGo%%0cWTZRlDJaH_$sLuc_x4Uw%m2wtdMz>uqia9J;*(9ma5 z5r}MG#?8^8B4H*i(WR}KN57XYc6vANCzlEjURGrYkddVn8lFRV9^nkax|7hIHjEf^ zhfov#prfeYrNLfrJE>Y$!o_5kmu^^C-$JrXfgQwI1Z*Z^7GW)K#0#kQPw!_7CP5QM zjA?1Jipglj5W|o;m(0VsXoq~wIk+3|EM5cv;?(U_l|LYoSLH9x6g?oV;?;?Rxae7c zmt9?8xUyPA;;`{xBiC2!`iJ7=K;J(Vha)iWL-}{{lV|XBXaUL}w5|)Lz#O^nc56}W z%Dbg&JCyG);goX^n1?a=N`ARvy0fmR|C7}txXb^b7Tvu9BX$66TG4^pO)xBV5!X?H z^2!l>#o^zD$)xuciq(fqJdCI8LcnTF&E|y$4-(bwg{m&B^Q?vyFMaZqgdC*y!TDym Z81X|Cv>5F+q?b)?R&vUtmBW>xe*rF($mIY4 delta 1649 zcmZ8h&2Jl35a0Lq)2`zp6C-2f*z7e95^9_5Em|RLqe$MJ#Ysk{sIon@2wRVd*z>hGdpkI%=||F=j0DF z<$7OV(csTtQ*Q;8q0h?WyEoYijZnl!E&mlYp>0`{D@G_o^CKfP_hijv%L;9_?8w?P zYc|_X=(6ob#-_s_mpxusU{9gr@j`LUs22akl~)7cqaVS>cYnCT>1RUy>Thv*Ml!Ye zn+!5|!s>ZQsx>(wW>r&;TA{oz)TeT?ATn#K-i!iM{XTefcY{y1jZN-m+n`&i*q3c_ zAlim+q-H4EVwAfYHTHyM?3gV}3R@>Tl+vb4~1~acMHRDYCg|>CbAMtZ< z=G6};=T6p>AZ;|GYBGI#T77P=$ZAmu>zrD(##O_byKZM@5GRD5GCPhwh~mukZ?~vf zPivmPQQr#Vh$tTe$4~`sKEdYi_Ljc5Q z_LWyI-B`)YBqe$R-fnWua03l6;F}-=4_nfJYTFOQh?;Wli!t?+bC3C&JAVYSP#G|+ zK6dB&#+YVy(283`kE!?n*i|SuDsvJkG+1N^Ttu(IQ z_m0ocvy+g8o?`e$WCh<3;(C(!KAnPFmwblVx$l4R-W3ZYOtWI0*7F+@IxI4C^4Vq< zzfGz(J%{rb)wSa6>~ke9n2r8EiiGT>!~ zszbVHWY4@7HP-!RvYr(*!_8F1n?hbp8ihUg>LfmgB&fm=4nJkqxCo|xJ#uWfM_%1v zABR#2unc$-0Lf__-~gTmxPS$K2Y3ch06Yu8zW~huCIA>~R!Y)(+6bCay3q==!keuZ z*5A9(BpbwmlGIA&qGgFK5g=!2lkDfM+}2D>AVs)zkIoeOv|rOsBCmai~nNlwFq zYxCmgz%Z_=%!fJ+hfdnvSA@T(zN{>W^Xj+CC-cuEW|84~)uNYRXuY5umUDY6Wq(Ke z-GMX1-D-8AOB~lyKM#Dd*r`cZ2`_2!p>dw^JXp_ZtihhTH+XlgbGo}QdPC4mz9x2e zP3Tp4R{*Pko}9Sxu38?taHB{0Ly_n;9MgKg4yLQs_vvci_~5 zipLOs41m?joYt+)C`k4H0%=8{CF!wrE7c4G%)F&$E8LEw7X@1hcG464$a1MNHn{vB D8G1SD diff --git a/helpers/customLogger.py b/helpers/customLogger.py index 586dd59..f0e711a 100644 --- a/helpers/customLogger.py +++ b/helpers/customLogger.py @@ -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):