File: logging_helper.py

package info (click to toggle)
python-cloudflare 2.20.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,048 kB
  • sloc: python: 6,932; makefile: 138; sh: 76
file content (55 lines) | stat: -rw-r--r-- 1,613 bytes parent folder | download
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
43
44
45
46
47
48
49
50
51
52
53
54
55
""" Logging for Cloudflare API"""
import logging

# try:
#     import http.client as http_client
# except ImportError:
#     # Python 2
#     import httplib as http_client

DEBUG = 0
INFO = 1

class CFlogger():
    """ Logging for Cloudflare API"""

    logger = None
    request_logger = None

    def __init__(self, level):
        """ Logging for Cloudflare API"""
        self.logger_level = self._get_logging_level(level)
        # logging.basicConfig(level=self.logger_level)
        if CFlogger.request_logger is None:
            CFlogger.request_logger = logging.getLogger("requests.packages.urllib3")
            CFlogger.request_logger.setLevel(self.logger_level)
            CFlogger.request_logger.propagate = level

    def getLogger(self):
        """ Logging for Cloudflare API"""
        # create logger
        if CFlogger.logger is None:
            CFlogger.logger = logging.getLogger('Python Cloudflare API v4')
            CFlogger.logger.setLevel(self.logger_level)

            ch = logging.StreamHandler()
            ch.setLevel(self.logger_level)

            # create formatter
            formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

            # add formatter to ch
            ch.setFormatter(formatter)

            # add ch to logger
            CFlogger.logger.addHandler(ch)

            # http_client.HTTPConnection.debuglevel = 1

        return CFlogger.logger

    def _get_logging_level(self, level):
        """ Logging for Cloudflare API"""
        if level is True:
            return logging.DEBUG
        return logging.INFO