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 |