I'm trying to write a module to use it in different scripts
import logging
from logging.handlers import RotatingFileHandler
_logger_name = "Nagios"
_print_format = "%(asctime)s - %(levelname)s - %(message)s"
_level = logging.DEBUG
class Log():
    def __init__(self,log_file,logger_name=_logger_name,level=_level):
        self.log_file = log_file
        self.logger_name = logger_name
        self.level = level
    def getLog(self):
        """
        Return the logging object
        """
       _logger = logging.getLogger(self.logger_name)
       _logger.setLevel(self.level)
       _logger.addHandler(self._rotateLog())
       return _logger
    def _rotateLog(self):
       """
       Rotating the log files if it exceed the size
       """
       rh = RotatingFileHandler(self.log_file,
                             maxBytes=20*1024*1024, backupCount=2)
       formatter = logging.Formatter(_print_format)
       rh.setFormatter(formatter)
       return rh
log = Log("kdfnknf").getLog()
log("hello")
I see the following error:
Traceback (most recent call last):
File "nagiosLog.py", line 45, in <module>
  log("hello")
TypeError: 'Logger' object is not callable
Any idea why I'm getting this error,
When debugged using pdb I do see it returns the object and printing the dir(log) I don't see the Logger module in it.
Am I missing something here
log("Hello")
This is wrong. Correct is
log.info("Hello")
log must be printed with logging level i.e. info/error/warning
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With