| OLD | NEW |
| (Empty) |
| 1 #!/usr/bin/python2.4 | |
| 2 # | |
| 3 # | |
| 4 # Copyright 2007, The Android Open Source Project | |
| 5 # | |
| 6 # Licensed under the Apache License, Version 2.0 (the "License"); | |
| 7 # you may not use this file except in compliance with the License. | |
| 8 # You may obtain a copy of the License at | |
| 9 # | |
| 10 # http://www.apache.org/licenses/LICENSE-2.0 | |
| 11 # | |
| 12 # Unless required by applicable law or agreed to in writing, software | |
| 13 # distributed under the License is distributed on an "AS IS" BASIS, | |
| 14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| 15 # See the License for the specific language governing permissions and | |
| 16 # limitations under the License. | |
| 17 | |
| 18 """Simple logging utility. Dumps log messages to stdout, and optionally, to a | |
| 19 log file. | |
| 20 | |
| 21 Init(path) must be called to enable logging to a file | |
| 22 """ | |
| 23 | |
| 24 import datetime | |
| 25 | |
| 26 _LOG_FILE = None | |
| 27 _verbose = False | |
| 28 _log_time = True | |
| 29 | |
| 30 def Init(log_file_path): | |
| 31 """Set the path to the log file""" | |
| 32 global _LOG_FILE | |
| 33 _LOG_FILE = log_file_path | |
| 34 print "Using log file: %s" % _LOG_FILE | |
| 35 | |
| 36 def GetLogFilePath(): | |
| 37 """Returns the path and name of the Log file""" | |
| 38 global _LOG_FILE | |
| 39 return _LOG_FILE | |
| 40 | |
| 41 def Log(new_str): | |
| 42 """Appends new_str to the end of _LOG_FILE and prints it to stdout. | |
| 43 | |
| 44 Args: | |
| 45 # new_str is a string. | |
| 46 new_str: 'some message to log' | |
| 47 """ | |
| 48 msg = _PrependTimeStamp(new_str) | |
| 49 print msg | |
| 50 _WriteLog(msg) | |
| 51 | |
| 52 def _WriteLog(msg): | |
| 53 global _LOG_FILE | |
| 54 if _LOG_FILE is not None: | |
| 55 file_handle = file(_LOG_FILE, 'a') | |
| 56 file_handle.write('\n' + str(msg)) | |
| 57 file_handle.close() | |
| 58 | |
| 59 def _PrependTimeStamp(log_string): | |
| 60 """Returns the log_string prepended with current timestamp """ | |
| 61 global _log_time | |
| 62 if _log_time: | |
| 63 return "# %s: %s" % (datetime.datetime.now().strftime("%m/%d/%y %H:%M:%S"), | |
| 64 log_string) | |
| 65 else: | |
| 66 # timestamp logging disabled | |
| 67 return log_string | |
| 68 | |
| 69 def SilentLog(new_str): | |
| 70 """Silently log new_str. Unless verbose mode is enabled, will log new_str | |
| 71 only to the log file | |
| 72 Args: | |
| 73 # new_str is a string. | |
| 74 new_str: 'some message to log' | |
| 75 """ | |
| 76 global _verbose | |
| 77 msg = _PrependTimeStamp(new_str) | |
| 78 if _verbose: | |
| 79 print msg | |
| 80 _WriteLog(msg) | |
| 81 | |
| 82 def SetVerbose(new_verbose=True): | |
| 83 """ Enable or disable verbose logging""" | |
| 84 global _verbose | |
| 85 _verbose = new_verbose | |
| 86 | |
| 87 def SetTimestampLogging(new_timestamp=True): | |
| 88 """ Enable or disable outputting a timestamp with each log entry""" | |
| 89 global _log_time | |
| 90 _log_time = new_timestamp | |
| 91 | |
| 92 def main(): | |
| 93 pass | |
| 94 | |
| 95 if __name__ == '__main__': | |
| 96 main() | |
| OLD | NEW |