Package src :: Module rhn_log
[hide private]
[frames] | no frames]

Source Code for Module src.rhn_log

 1  # 
 2  # Copyright (c) 2008--2016 Red Hat, Inc. 
 3  # 
 4  # This software is licensed to you under the GNU General Public License, 
 5  # version 2 (GPLv2). There is NO WARRANTY for this software, express or 
 6  # implied, including the implied warranties of MERCHANTABILITY or FITNESS 
 7  # FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 
 8  # along with this software; if not, see 
 9  # http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. 
10  # 
11  # Red Hat trademarks are not licensed under GPLv2. No permission is 
12  # granted to use or replicate Red Hat trademarks that are incorporated 
13  # in this software or its documentation. 
14  # 
15   
16  import os 
17  import sys 
18  import time 
19  import traceback 
20  from rhn.i18n import bstr 
21   
22 -class Logger:
23 debug_level = 1 24 logfile = "/var/log/osad" 25
26 - def set_logfile( self, logfile ):
28
29 - def log_debug(self, debug_level, *args):
30 if debug_level <= self.debug_level: 31 info_out = ( 32 time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())), 33 self.get_caller(), 34 " ".join([str(x) for x in args]) 35 ) 36 37 outstring = "%s %s: %s\n" % info_out 38 sys.stdout.write( outstring ) 39 40 if not Logger.logfile is None: 41 try: 42 fd = os.open(Logger.logfile, os.O_APPEND | os.O_RDWR | os.O_CREAT, int("0600", 8)) 43 os.write(fd, bstr(outstring)) 44 os.close(fd) 45 except IOError: 46 raise
47
48 - def set_debug_level(self, debug_level):
50
51 - def get_caller(self, caller_offset=4):
52 tbStack = traceback.extract_stack() 53 callid = len(tbStack) - caller_offset 54 module = tbStack[callid] 55 module_file = os.path.basename(module[0]) 56 module_file = module_file.split('.', 1)[0] 57 return "%s.%s" % (module_file, module[2])
58
59 - def log_error(self, *args):
60 self.log_debug(0, *args) 61 line = [str(x) for x in args] 62 sys.stderr.write(" ".join(line)) 63 sys.stderr.write("\n")
64
65 - def die(self, error_code, *args):
66 self.log_error(args) 67 sys.exit(error_code)
68
69 -def set_logfile(*args):
70 return Logger().set_logfile(*args)
71
72 -def set_debug_level(*args):
73 return Logger().set_debug_level(*args)
74
75 -def get_debug_level():
76 return Logger().debug_level
77
78 -def log_debug(*args):
79 return Logger().log_debug(*args)
80
81 -def log_error(*args):
82 return Logger().log_error(*args)
83
84 -def die(error_code, *args):
85 Logger().log_error(*args) 86 sys.exit(error_code)
87