"""mod_snake_log_syslog: A simple, 'silly' module to do logging of certain transactions to the syslog. This is meant as a very simple example of how to use mod_snake, and probably shouldn't be used in a real server -- as it sucks.""" import mod_snake import syslog class SnakeLogSyslog: def __init__(self, module): directives = { 'SnakeLogSyslog' : (mod_snake.OR_ALL, mod_snake.FLAG, self.cmd_SnakeLogSyslog), } module.add_directives(directives) hooks = { 'create_dir_config' : self.create_dir_config, 'open_logs' : self.open_logs, 'log_transaction' : self.log_transaction, } for hook in hooks.keys(): module.add_hook(hook, hooks[hook]) def cmd_SnakeLogSyslog(self, per_dir, per_svr, on_or_off): 'cmd_SnakelogSyslog: enable or disable special syslog logging' per_dir['enabled'] = on_or_off def create_dir_config(self, path): return { 'path' : path, 'enabled' : 0 } def open_logs(self, per_svr, module): syslog.openlog('SnakeSyslog') def log_transaction(self, per_dir, per_svr, request_rec): if per_dir['enabled']: conn = request_rec.connection syslog.syslog('%s - %s' % (conn.remote_ip, request_rec.uri))