]>
git.ipfire.org Git - pakfire.git/blob - python/pakfire/logger.py
2 ###############################################################################
4 # Pakfire - The IPFire package management system #
5 # Copyright (C) 2011 Pakfire development team #
7 # This program is free software: you can redistribute it and/or modify #
8 # it under the terms of the GNU General Public License as published by #
9 # the Free Software Foundation, either version 3 of the License, or #
10 # (at your option) any later version. #
12 # This program is distributed in the hope that it will be useful, #
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of #
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
15 # GNU General Public License for more details. #
17 # You should have received a copy of the GNU General Public License #
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. #
20 ###############################################################################
25 def setup_logging(config
=None):
27 This function initialized the logger that is enabled immediately.
30 l
= logging
.getLogger()
32 if len(l
.handlers
) > 1:
33 logging
.debug("Logging was already set up. Don't do this again.")
36 # Remove all previous defined handlers.
37 for handler
in l
.handlers
:
38 l
.removeHandler(handler
)
40 # Set level of logger always to DEBUG.
41 l
.setLevel(logging
.DEBUG
)
43 # But only log all the debugging stuff on console if
44 # we are running in debugging mode.
45 handler
= logging
.StreamHandler()
47 if config
and config
.get("debug"):
48 handler
.setLevel(logging
.DEBUG
)
50 handler
.setLevel(logging
.INFO
)
54 # The configuration file always logs all messages.
56 handler
= logging
.FileHandler(config
.get("logfile"))
57 handler
.setLevel(logging
.DEBUG
)
61 class BuildFormatter(logging
.Formatter
):
63 self
._fmt
= "[%(asctime)s] %(message)s"
66 self
.starttime
= time
.time()
68 def converter(self
, recordtime
):
70 This returns a timestamp relatively to the time when we started
73 recordtime
-= self
.starttime
75 return time
.gmtime(recordtime
)
77 def formatTime(self
, record
, datefmt
=None):
78 ct
= self
.converter(record
.created
)
79 t
= time
.strftime("%H:%M:%S", ct
)
80 s
= "%s,%03d" % (t
, record
.msecs
)