xref: /aosp_15_r20/development/tools/axl/log.py (revision 90c8c64db3049935a07c6143d7fd006e26f8ecca)
1*90c8c64dSAndroid Build Coastguard Worker#!/usr/bin/env python
2*90c8c64dSAndroid Build Coastguard Worker
3*90c8c64dSAndroid Build Coastguard Worker#
4*90c8c64dSAndroid Build Coastguard Worker# Copyright 2007, The Android Open Source Project
5*90c8c64dSAndroid Build Coastguard Worker#
6*90c8c64dSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
7*90c8c64dSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
8*90c8c64dSAndroid Build Coastguard Worker# You may obtain a copy of the License at
9*90c8c64dSAndroid Build Coastguard Worker#
10*90c8c64dSAndroid Build Coastguard Worker#     http://www.apache.org/licenses/LICENSE-2.0
11*90c8c64dSAndroid Build Coastguard Worker#
12*90c8c64dSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
13*90c8c64dSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
14*90c8c64dSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15*90c8c64dSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
16*90c8c64dSAndroid Build Coastguard Worker# limitations under the License.
17*90c8c64dSAndroid Build Coastguard Worker#
18*90c8c64dSAndroid Build Coastguard Worker
19*90c8c64dSAndroid Build Coastguard Workerimport time, sys
20*90c8c64dSAndroid Build Coastguard Workerimport singletonmixin
21*90c8c64dSAndroid Build Coastguard Worker
22*90c8c64dSAndroid Build Coastguard Workerclass Log(singletonmixin.Singleton):
23*90c8c64dSAndroid Build Coastguard Worker
24*90c8c64dSAndroid Build Coastguard Worker    def __init__(self, file):
25*90c8c64dSAndroid Build Coastguard Worker        """_file: filename or open file"""
26*90c8c64dSAndroid Build Coastguard Worker
27*90c8c64dSAndroid Build Coastguard Worker        if type(file) is str:
28*90c8c64dSAndroid Build Coastguard Worker            self._file = open(file, "a")
29*90c8c64dSAndroid Build Coastguard Worker        else:
30*90c8c64dSAndroid Build Coastguard Worker            self._file = file
31*90c8c64dSAndroid Build Coastguard Worker
32*90c8c64dSAndroid Build Coastguard Worker    def _getTime(self):
33*90c8c64dSAndroid Build Coastguard Worker        tm = time.time()
34*90c8c64dSAndroid Build Coastguard Worker        return "%s:%.2d" % (time.strftime('%m/%d/%Y %H:%M:%S',
35*90c8c64dSAndroid Build Coastguard Worker                                          time.localtime(tm)),
36*90c8c64dSAndroid Build Coastguard Worker                            int((tm - int(tm)) * 100))
37*90c8c64dSAndroid Build Coastguard Worker
38*90c8c64dSAndroid Build Coastguard Worker    def _log(self, *logstrs):
39*90c8c64dSAndroid Build Coastguard Worker        timeStr = self._getTime()
40*90c8c64dSAndroid Build Coastguard Worker        for ln in " ".join(map(str, logstrs)).split("\n"):
41*90c8c64dSAndroid Build Coastguard Worker            self._file.write("%s %s\n" % (timeStr, ln))
42*90c8c64dSAndroid Build Coastguard Worker        self._file.flush()
43*90c8c64dSAndroid Build Coastguard Worker
44*90c8c64dSAndroid Build Coastguard Worker    def debug(self, *logstrs):
45*90c8c64dSAndroid Build Coastguard Worker        self._log("D", *logstrs)
46*90c8c64dSAndroid Build Coastguard Worker    def info(self, *logstrs):
47*90c8c64dSAndroid Build Coastguard Worker        self._log("I", *logstrs)
48*90c8c64dSAndroid Build Coastguard Worker    def warn(self, *logstrs):
49*90c8c64dSAndroid Build Coastguard Worker        self._log("W", *logstrs)
50*90c8c64dSAndroid Build Coastguard Worker    def error(self, *logstrs):
51*90c8c64dSAndroid Build Coastguard Worker        self._log("E", *logstrs)
52*90c8c64dSAndroid Build Coastguard Worker
53*90c8c64dSAndroid Build Coastguard Worker    # default to info
54*90c8c64dSAndroid Build Coastguard Worker    log = info
55*90c8c64dSAndroid Build Coastguard Worker    __call__ = log
56