Projet

Général

Profil

« Précédent | Suivant » 

Révision 8946f5e4

Ajouté par Jérôme Schneider il y a presque 10 ans

now using logging.config.dictConfig

Fixes #4853

Voir les différences:

mandaye/auth/saml2.py
206 206
        if not metadata_file_path:
207 207
            raise MandayeSamlException("sso: unable to load provider")
208 208
        logger.debug('sso: target_idp is %r', target_idp)
209
        logger.debug('sso: metadata url is %r', self.config.IDP_METADATA)
209
        logger.debug('sso: metadata url is %r', self.config['saml2_idp_metadata'])
210 210
        logger.debug('sso: mandaye metadata are %r', self._get_metadata(env))
211 211
        server = lasso.Server.newFromBuffers(self._get_metadata(env),
212 212
            self.config['saml2_signature_private_key'])
mandaye/global_config.py
14 14
# dialect+driver://username:password@host:port/database
15 15
db_url = 'sqlite:///test.db'
16 16

  
17
# urllib2 debug mode
18
debug = False
17 19

  
18 20
# Log configuration
19
import logging
20
debug = False
21
syslog = False
22
log_file = os.path.join(_PROJECT_PATH, 'mandaye/mandaye.log')
23
log_level = logging.INFO
24

  
25
# Log rotation
26
# W[0-6] : weekly (0: Monday), D: day, ... (python doc)
27
log_when = 'W6'
28
# Every week
29
log_interval = 1
30
# BackupCount (keep one year of log)
31
log_backup = 52
21
LOGGING = {
22
        'version': 1,
23
        'disable_existing_loggers': True,
24

  
25
        'formatters': {
26
            'console': {
27
                'format': '%(asctime)s %(levelname)s %(message)s',
28
                'datefmt': '%H:%M:%S',
29
                },
30
            'file': {
31
                'format': '%(asctime)s %(levelname)s %(uuid)s %(message)s',
32
                'datefmt': '%Y-%m-%d %H:%M:%S'
33
                }
34
            },
35
        'handlers': {
36
            'console': {
37
                'level': 'DEBUG',
38
                'class': 'logging.StreamHandler',
39
                'formatter': 'console'
40
                },
41
            'rotate_file': {
42
                'level': 'INFO',
43
                'class': 'logging.handlers.TimedRotatingFileHandler',
44
                'formatter': 'file',
45
                'filename': os.path.join(_PROJECT_PATH, 'mandaye.log'),
46
                # W[0-6] : weekly (0: Monday), D: day, ... (python doc)
47
                'when': 'W6',
48
                # Every week
49
                'interval': 1,
50
                # BackupCount (keep one year of log)
51
                'backupCount': 52
52
                },
53
            'syslog': {
54
                'level': 'INFO',
55
                'class': 'logging.handlers.SysLogHandler',
56
                'formatter': 'file',
57
                'address': '/dev/log'
58
                },
59
            },
60
            'loggers': {
61
                '': {
62
                    'handlers': ['console'],
63
                    'level': 'DEBUG',
64
                    'propagate': False,
65
                    },
66
                'mandaye': {
67
                    'handlers': ['console', 'rotate_file'],
68
                    'level': 'DEBUG',
69
                    'propagate': False,
70
                    },
71
                },
72
            }
32 73

  
33 74
# Template directory
34 75
template_directory = os.path.join(_PROJECT_PATH, 'mandaye/templates')
......
72 113

  
73 114
# supported authentification
74 115
authentifications = {
75
    'saml2': 'mandaye.auth.SAML2Auth'
76
}
116
        'saml2': 'mandaye.auth.SAML2Auth'
117
        }
77 118

  
78 119
# supported mappers
79 120
mappers = {}
80 121

  
81 122
# beaker session configuration
82 123
session_opts = {
83
    'session.type': 'file',
84
    'session.cookie_expires': True,
85
    'session.timeout': 3600,
86
    'session.data_dir': '/var/tmp/beaker'
87
}
124
        'session.type': 'file',
125
        'session.cookie_expires': True,
126
        'session.timeout': 3600,
127
        'session.data_dir': '/var/tmp/beaker'
128
        }
88 129

  
89 130
# Needed if ssl is activated
90 131
ssl = False
91 132
keyfile = ''
92 133
certfile = ''
93 134

  
135
if raven_dsn:
136
    LOGGING['handlers']['sentry'] = {
137
            'level': 'ERROR',
138
            'class': 'raven.handlers.logging.SentryHandler',
139
            'dsn': raven_dsn,
140
            }
141
    LOGGING['loggers']['']['handlers'].append('sentry')
mandaye/log.py
1 1

  
2 2
import logging
3

  
4
from logging.handlers import SysLogHandler, TimedRotatingFileHandler
3
from logging.config import dictConfig
5 4

  
6 5
from mandaye import config
7 6

  
8
logger = logging.getLogger(__name__)
9
logger.setLevel(config.log_level)
10

  
11
# Syslog logging
12
if config.syslog:
13
    syslog_handler = SysLogHandler(address='/dev/log')
14
    logger.addHandler(syslog_handler)
15
else:
16
    syslog_handler = None
7
class UuidFilter(logging.Filter):
8
    uuid = ""
17 9

  
18
# File logging
19
if config.log_file:
20
    filehandler = TimedRotatingFileHandler(config.log_file,
21
            when=config.log_when,
22
            interval=config.log_interval, backupCount=config.log_backup)
23
    filehandler.setFormatter(
24
            logging.Formatter('%(asctime)s %(levelname)s %(message)s',
25
            datefmt='%Y-%m-%d %H:%M:%S'))
26
    logger.addHandler(filehandler)
27
else:
28
    filehandler = None
10
    def filter(self, record):
11
        record.uuid = UuidFilter.uuid
12
        return True
29 13

  
30
# Stream logging
31
sh = logging.StreamHandler()
32
sh.setFormatter(logging.Formatter('%(levelname)s %(message)s'))
33
logger.addHandler(sh)
34

  
35
def format_logging_handlers(uuid):
36
    """ uuid: unique id to trace a request
37
    Format logging handlers
38
    """
39
    if filehandler:
40
        filehandler.setFormatter(
41
                logging.Formatter('%(asctime)s %(levelname)s [' +\
42
                        uuid +  '] %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
43
                )
44
    if syslog_handler:
45
        syslog_handler.setFormatter(
46
                logging.Formatter('%(levelname)s [' + uuid +  '] %(message)s',
47
                        datefmt='%Y-%m-%d %H:%M:%S')
48
                )
14
dictConfig(config.LOGGING)
15
logger = logging.getLogger(__name__)
16
logger.addFilter(UuidFilter())
49 17

  
mandaye/server.py
13 13
from mandaye import config
14 14
from mandaye.exceptions import ImproperlyConfigured
15 15
from mandaye.dispatcher import Dispatcher
16
from mandaye.log import logger, format_logging_handlers
16
from mandaye.log import logger, UuidFilter
17 17
from mandaye.handlers.default import MandayeRedirectHandler, MandayeErrorHandler
18 18
from mandaye.http import HTTPHeader, HTTPRequest, HTTPResponse
19 19
from mandaye.response import _404, _502, _500
......
99 99
            self.dispatcher = None
100 100
            local_host = env['HTTP_HOST']
101 101
            path_info = env['PATH_INFO']
102
            format_logging_handlers(self.env['mandaye.uuid'])
102
            UuidFilter.uuid = self.env['mandaye.uuid']
103 103
            logger.info("Client %s - %s %s://%s%s" %\
104 104
                    (self.env['REMOTE_ADDR'], self.env['REQUEST_METHOD'],
105 105
                        self.env['wsgi.url_scheme'], self.env['HTTP_HOST'],
mandaye/skel/example.module/config.py
10 10
# dialect+driver://username:password@host:port/database
11 11
db_url = 'sqlite:///' + os.path.join(_PROJECT_PATH, '{project_name}.db')
12 12

  
13
## Log configuration
14 13
debug = False
15
syslog = False
16
log_file = os.path.join(_PROJECT_PATH, '{project_name}/{project_name}.log')
17
log_level = logging.INFO
18
# Log rotation
19
# W[0-6] : weekly (0: Monday), D: day, ... (python doc)
20
log_when = 'W6'
21
# Every week
22
log_interval = 1
23
# BackupCount (keep one year of log)
24
log_backup = 52
14

  
15
# Log configuration
16
LOGGING = {{
17
        'version': 1,
18
        'disable_existing_loggers': True,
19

  
20
        'formatters': {{
21
            'console': {{
22
                'format': '%(asctime)s %(levelname)s %(message)s',
23
                'datefmt': '%H:%M:%S',
24
                }},
25
            'file': {{
26
                'format': '%(asctime)s %(levelname)s %(uuid)s %(message)s',
27
                'datefmt': '%Y-%m-%d %H:%M:%S'
28
                }}
29
            }},
30
        'handlers': {{
31
            'console': {{
32
                'level': 'DEBUG',
33
                'class': 'logging.StreamHandler',
34
                'formatter': 'console'
35
                }},
36
            'rotate_file': {{
37
                'level': 'INFO',
38
                'class': 'logging.handlers.TimedRotatingFileHandler',
39
                'formatter': 'file',
40
                'filename': os.path.join(_PROJECT_PATH, '{project_name}.log'),
41
                # W[0-6] : weekly (0: Monday), D: day, ... (python doc)
42
                'when': 'W6',
43
                # Every week
44
                'interval': 1,
45
                # BackupCount (keep one year of log)
46
                'backupCount': 52
47
                }},
48
            'syslog': {{
49
                'level': 'INFO',
50
                'class': 'logging.handlers.SysLogHandler',
51
                'formatter': 'file',
52
                'address': '/dev/log'
53
                }},
54
            }},
55
            'loggers': {{
56
                '': {{
57
                    'handlers': ['console'],
58
                    'level': 'DEBUG',
59
                    'propagate': False,
60
                    }},
61
                'mandaye': {{
62
                    'handlers': ['console', 'rotate_file'],
63
                    'level': 'DEBUG',
64
                    'propagate': False,
65
                    }},
66
                '{project_name}': {{
67
                    'handlers': ['console', 'rotate_file'],
68
                    'level': 'DEBUG',
69
                    'propagate': False,
70
                    }},
71
                }},
72
            }}
73

  
25 74

  
26 75
## PATH
27 76
# Template directory

Formats disponibles : Unified diff