#!/usr/bin/python2.4 # # # Copyright 2007, The Android Open Source Project # # Licensed 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. """Simple logging utility. Dumps log messages to stdout, and optionally, to a log file. Init(path) must be called to enable logging to a file """ import datetime _LOG_FILE = None _verbose = False _log_time = True def Init(log_file_path): """Set the path to the log file""" global _LOG_FILE _LOG_FILE = log_file_path print "Using log file: %s" % _LOG_FILE def GetLogFilePath(): """Returns the path and name of the Log file""" global _LOG_FILE return _LOG_FILE def Log(new_str): """Appends new_str to the end of _LOG_FILE and prints it to stdout. Args: # new_str is a string. new_str: 'some message to log' """ msg = _PrependTimeStamp(new_str) print msg _WriteLog(msg) def _WriteLog(msg): global _LOG_FILE if _LOG_FILE is not None: file_handle = file(_LOG_FILE, 'a') file_handle.write('\n' + str(msg)) file_handle.close() def _PrependTimeStamp(log_string): """Returns the log_string prepended with current timestamp """ global _log_time if _log_time: return "# %s: %s" % (datetime.datetime.now().strftime("%m/%d/%y %H:%M:%S"), log_string) else: # timestamp logging disabled return log_string def SilentLog(new_str): """Silently log new_str. Unless verbose mode is enabled, will log new_str only to the log file Args: # new_str is a string. new_str: 'some message to log' """ global _verbose msg = _PrependTimeStamp(new_str) if _verbose: print msg _WriteLog(msg) def SetVerbose(new_verbose=True): """ Enable or disable verbose logging""" global _verbose _verbose = new_verbose def SetTimestampLogging(new_timestamp=True): """ Enable or disable outputting a timestamp with each log entry""" global _log_time _log_time = new_timestamp def main(): pass if __name__ == '__main__': main()