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 |