For one of my jython development, i like to write traces in logging files.
So i have wrote a simple little jython class to log :
import time
import java.lang.System as sys
class Logging:
ERROR = 3
WARNING = 2
INFO = 1
DEBUG = 0
LEVEL = ['DEBUG ', 'INFO ', 'WARNING', 'ERROR ']
VALUELEVEL = "DEBUG = 0, INFO = 1, WARNING = 2, ERROR = 3"
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] + ']-------------------------------------------------------------------------------\n')
file.write('[' + time.asctime() + '][' + self.LEVEL[level] + ']-')
file.write('Create Object loggin\n')
file.close()
def __del__(self):
self('Destroy Object loggin')
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] + ']-')
file.write(string + '\n')
file.close()
if self.bprint2screen == 1:
print '[' + time.asctime() + '][' + self.LEVEL[level] + '] - ' + string
def setPrint2Screen(self,bprint2screen):
self.bprint2screen = bprint2screen
def setPrint2File(self,bprint2file):
self.bprint2file = bprint2file
def setLevel(self,level):
self.level = level
def setFileName(self,filename):
if filename != "none":
self.filename = filename
self.bprint2file = 1
self.bprint2screen = 0
sample to use it :
#add Script Jy Path to Systeme
sys.path.append("/probtp_outils/was/jython/")
#Import File where log class is defined
scriptname = "ListeDataSource.jy"
levelLog = 0 #DEBUG
pathLog = "/tmp/logs.log"
#Logging For Debug
log = classLogging.Logging()
log.setLevel(levelLog)
log.setFileName(pathLog)
log.print(log.INFO,"logs Information bla bla bla")
log.print(log.DEBUG,"Debug Informations, bla bla")