mirror of
https://github.com/kakwa/ldapcherry
synced 2024-11-25 02:34:31 +01:00
74 lines
1.9 KiB
Python
74 lines
1.9 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
# vim:set expandtab tabstop=4 shiftwidth=4:
|
|
#
|
|
# The MIT License (MIT)
|
|
# ldapCherry
|
|
# Copyright (c) 2014 Carpentier Pierre-Francois
|
|
|
|
# Generic imports
|
|
import sys
|
|
import traceback
|
|
import logging
|
|
import logging.handlers
|
|
import cherrypy
|
|
|
|
|
|
# Custom log function to override weird error.log function
|
|
# of cherrypy
|
|
def syslog_error(
|
|
msg='',
|
|
context='',
|
|
severity=logging.INFO,
|
|
traceback=False
|
|
):
|
|
|
|
if traceback and msg == '':
|
|
msg = 'Python Exception:'
|
|
if context == '':
|
|
cherrypy.log.error_log.log(severity, msg)
|
|
else:
|
|
cherrypy.log.error_log.log(
|
|
severity,
|
|
' '.join((context, msg))
|
|
)
|
|
if traceback:
|
|
import traceback
|
|
try:
|
|
exc = sys.exc_info()
|
|
if exc == (None, None, None):
|
|
cherrypy.log.error_log.log(severity, msg)
|
|
# log each line of the exception
|
|
# in a separate log for lisibility
|
|
for l in traceback.format_exception(*exc):
|
|
cherrypy.log.error_log.log(severity, l)
|
|
finally:
|
|
del exc
|
|
|
|
|
|
def get_loglevel(level):
|
|
""" return logging level object
|
|
corresponding to a given level passed as
|
|
a string
|
|
@str level: name of a syslog log level
|
|
@rtype: logging, logging level from logging module
|
|
"""
|
|
if level == 'debug':
|
|
return logging.DEBUG
|
|
elif level == 'notice':
|
|
return logging.INFO
|
|
elif level == 'info':
|
|
return logging.INFO
|
|
elif level == 'warning' or level == 'warn':
|
|
return logging.WARNING
|
|
elif level == 'error' or level == 'err':
|
|
return logging.ERROR
|
|
elif level == 'critical' or level == 'crit':
|
|
return logging.CRITICAL
|
|
elif level == 'alert':
|
|
return logging.CRITICAL
|
|
elif level == 'emergency' or level == 'emerg':
|
|
return logging.CRITICAL
|
|
else:
|
|
return logging.INFO
|