You can use it like this :
class Toto: def __init__(self,log): self.log = copy.deepcopy(log) self.log.setClassname2Log("[Properties]") self.log.print(self.log.DEBUG,"_init__")
new code:
import time
import copy
import pickle
class Logging:
ERROR = 3
WARNING = 2
INFO = 1
DEBUG = 0
LEVEL = ['DEBUG ', 'INFO ', 'WARNING', 'ERROR ']
VALUELEVEL = "DEBUG = 0, INFO = 1, WARNING = 2, ERROR = 3"
class2log =""
filename = "none"
bprint2screen = 0
bprint2file = 1
level = 3
def __init__(self, filename = "none", levelbyDefault = 3):
self.level = levelbyDefault
if filename == "none":
self.bprint2file = 0
self.bprint2screen = 1
else:
if 1 >= self.level:
self.filename = filename
file = open(self.filename,'w')
file.write('[' + time.asctime() + '][' + self.LEVEL[level] + ']' + self.class2log +'-------------------------------------------------------------------------------\n')
file.write('[' + time.asctime() + '][' + self.LEVEL[level] + ']' + self.class2log + '-')
file.write('Create Object loggin\n')
file.close()
#Permet la copie de l'objet
# - Avec reférence (pointeur sur l'objet)
def __copy__(self):
return self.__class__(self)
# - Sans reférence (vrai copie en mémoire)
def __deepcopy__(self, memo={}):
from copy import deepcopy
result = self.__class__()
result.setPrint2Screen(self.bprint2screen)
result.setPrint2File(self.bprint2file)
result.setLevel(self.level)
result.setFileName(self.filename)
result.setClassname2Log(self.class2log)
return result
def print(self,level, string):
if int(level) >= int(self.level):
if self.bprint2file == 1:
file = open(self.filename,'a')
file.write('[' + time.asctime() + '][' + self.LEVEL[level] +']' + self.class2log + ' - ')
file.write(string + '\n')
file.close()
if self.bprint2screen == 1:
print '[' + time.asctime() + '][' + self.LEVEL[level] + ']' + self.class2log +' - ' + string
def setPrint2Screen(self,bprint2screen):
self.bprint2screen = bprint2screen
def setPrint2File(self,bprint2file):
self.bprint2file = bprint2file
def setLevel(self,level):
self.level = level
def setClassname2Log(self,className):
self.class2log = className
def setFileName(self,filename):
if filename != "none":
self.filename = filename
self.bprint2file = 1
self.bprint2screen = 0
# -----------------------------------------
Aucun commentaire:
Enregistrer un commentaire