-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlogger.py
More file actions
40 lines (35 loc) · 1.5 KB
/
logger.py
File metadata and controls
40 lines (35 loc) · 1.5 KB
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
#!/usr/bin/env python
# encoding: utf-8
import os
import logging
import settings
"""
Diese Klasse dient als Grundlage fuer den Logger.
Die Logs werden im Verzeichnis "Logs" gespeichert.
Die Instanzierung erfolgt wie folgend am Beispiel von dump.py beschrieben:
class Dump:
def __init__(self, user, password, host, database):
self.logger = Logger(self.__class__.__name__).get() # Zugriff auf die "private" Variablen jeder Klasse
....
self.logger.error("There was an error saving dump") # Exemplarisches Logging mit dem Level "error".
# Weitere Level u.a.: info, debug, warning
"""
class Logger(object):
def __init__(self, name):
name = name.replace('.log','')
logger = logging.getLogger('log_%s' % name)
logger.setLevel(logging.DEBUG)
if not logger.handlers:
file_name = os.path.join(settings.LOGGING_DIR, '%s.log' % name)
handlerFile = logging.FileHandler(file_name)
handlerConsole = logging.StreamHandler()
self.addHandler(handlerFile, logger, 'DEBUG')
self.addHandler(handlerConsole, logger, 'DEBUG')
self._logger = logger
def addHandler(self, handler, logger, level):
formatter = logging.Formatter('%(asctime)s %(levelname)s:%(name)s %(message)s')
handler.setFormatter(formatter)
handler.setLevel(logging.getLevelName(level))
logger.addHandler(handler)
def get(self):
return self._logger