annotate examples/trac/trac/log.py @ 39:93b4dcbafd7b trunk

Copy Trac to main branch.
author cmlenz
date Mon, 03 Jul 2006 18:53:27 +0000
parents
children
rev   line source
39
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
1 # -*- coding: utf-8 -*-
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
2 #
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
3 # Copyright (C) 2003-2006 Edgewall Software
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
4 # Copyright (C) 2003-2005 Daniel Lundin <daniel@edgewall.com>
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
5 # Copyright (C) 2006 Christian Boos <cboos@neuf.fr>
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
6 # All rights reserved.
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
7 #
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
8 # This software is licensed as described in the file COPYING, which
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
9 # you should have received as part of this distribution. The terms
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
10 # are also available at http://trac.edgewall.com/license.html.
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
11 #
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
12 # This software consists of voluntary contributions made by many
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
13 # individuals. For the exact contribution history, see the revision
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
14 # history and logs, available at http://projects.edgewall.com/trac/.
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
15 #
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
16 # Author: Daniel Lundin <daniel@edgewall.com>
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
17
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
18 import logging
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
19 import logging.handlers
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
20 import sys
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
21
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
22 def logger_factory(logtype='syslog', logfile=None, level='WARNING',
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
23 logid='Trac'):
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
24 logger = logging.getLogger(logid)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
25 logtype = logtype.lower()
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
26 if logtype == 'file':
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
27 hdlr = logging.FileHandler(logfile)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
28 elif logtype in ['winlog', 'eventlog', 'nteventlog']:
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
29 # Requires win32 extensions
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
30 hdlr = logging.handlers.NTEventLogHandler(logid,
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
31 logtype='Application')
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
32 elif logtype in ['syslog', 'unix']:
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
33 hdlr = logging.handlers.SysLogHandler('/dev/log')
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
34 elif logtype in ['stderr']:
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
35 hdlr = logging.StreamHandler(sys.stderr)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
36 else:
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
37 hdlr = logging.handlers.BufferingHandler(0)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
38 # Note: this _really_ throws away log events, as a `MemoryHandler`
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
39 # would keep _all_ records in case there's no target handler (a bug?)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
40
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
41 format = 'Trac[%(module)s] %(levelname)s: %(message)s'
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
42 if logtype in ['file', 'stderr']:
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
43 format = '%(asctime)s ' + format
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
44 datefmt = ''
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
45 if logtype == 'stderr':
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
46 datefmt = '%X'
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
47 level = level.upper()
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
48 if level in ['DEBUG', 'ALL']:
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
49 logger.setLevel(logging.DEBUG)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
50 elif level == 'INFO':
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
51 logger.setLevel(logging.INFO)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
52 elif level == 'ERROR':
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
53 logger.setLevel(logging.ERROR)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
54 elif level == 'CRITICAL':
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
55 logger.setLevel(logging.CRITICAL)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
56 else:
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
57 logger.setLevel(logging.WARNING)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
58 formatter = logging.Formatter(format,datefmt)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
59 hdlr.setFormatter(formatter)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
60 logger.addHandler(hdlr)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
61
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
62 return logger
Copyright (C) 2012-2017 Edgewall Software