blob: e30a5a81cdad6ca9db033839ce8db1298c7ad4f4 [file] [log] [blame]
#!/usr/bin/python
# -----------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# -----------------------------------------------------------------------
import datetime
import time
class DuccLogger:
prefix_debug = 'DEBUG'
prefix_error = 'ERROR'
prefix_info = ' INFO'
prefix_trace = 'TRACE'
prefix_warn = ' WARN'
def __init__(self):
self.timestamping_on()
self.prefixing_on()
self.debug_off()
self.error_on()
self.info_on()
self.trace_off()
self.warn_on()
def timestamping_on(self):
self.flag_timestamping = True
def timestamping_off(self):
self.flag_timestamping = False
def prefixing_on(self):
self.flag_prefixing = True
def prefixing_off(self):
self.flag_prefixing = False
def debug_on(self):
self.flag_debug = True
def debug_off(self):
self.flag_debug = False
def error_on(self):
self.flag_error = True
def error_off(self):
self.flag_error = False
def info_on(self):
self.flag_info = True
def info_off(self):
self.flag_info = False
def trace_on(self):
self.flag_trace = True
def trace_off(self):
self.flag_trace = False
def warn_on(self):
self.flag_warn = True
def warn_off(self):
self.flag_warn = False
# produce a time stamp
def get_timestamp(self):
tod = time.time()
timestamp = datetime.datetime.fromtimestamp(tod).strftime('%Y-%m-%d %H:%M:%S')
return timestamp
# print the message
def print_message(self,text,prefix,file=None,func=None):
message = ''
if(self.flag_timestamping):
message = message+self.get_timestamp()+' '
if(self.flag_prefixing):
message= message+prefix+' '
if(file != None):
message = message+file
if(func != None):
message = message+':'+func
message = message+' '
message = message+text
print message
def debug(self,text,file=None,func=None):
if(self.flag_debug):
self.print_message(text,self.prefix_debug,file,func)
def error(self,text,file=None,func=None):
if(self.flag_error):
self.print_message(text,self.prefix_error,file,func)
def info(self,text,file=None,func=None):
if(self.flag_info):
self.print_message(text,self.prefix_info,file,func)
def trace(self,text,file=None,func=None):
if(self.flag_trace):
self.print_message(text,self.prefix_trace,file,func)
def warn(self,text,file=None,func=None):
if(self.flag_warn):
self.print_message(text,self.prefix_warn,file,func)
if __name__ == "__main__":
base = DuccLogger()