From c7ace886dede07cab8034337f136479ef32051bc Mon Sep 17 00:00:00 2001
From: Thuban <thuban@yeuxdelibad.net>
Date: Mon, 21 Aug 2017 13:40:38 +0000
Subject: [PATCH] support logrotate

---
 vilain.py |   18 +++++++++++-------
 1 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/vilain.py b/vilain.py
index 0a5168c..d36c59f 100755
--- a/vilain.py
+++ b/vilain.py
@@ -24,6 +24,7 @@
 import configparser
 import re
 import logging
+import logging.handlers
 import subprocess
 import asyncio
 import time
@@ -38,10 +39,13 @@
     sys.exit(1)
 
 # Configure logging
+log_handler = logging.handlers.WatchedFileHandler(LOGFILE)
+formatter = logging.Formatter(
+        '%(asctime)s %(module)s:%(funcName)s:%(message)s',
+        '%b %d %H:%M:%S')
+log_handler.setFormatter(formatter)
 logger = logging.getLogger(__name__)
-logging.basicConfig(filename=LOGFILE,
-                    format='%(asctime)s %(module)s:%(funcName)s:%(message)s',
-                    datefmt='%H:%M:%S')
+logger.addHandler(log_handler)
 logger.setLevel(logging.INFO)
 
 # functions
@@ -156,7 +160,7 @@
                                     await self.bad_ip_queue.put({'ip' : bad_ip, 'maxtries': maxtries, 'reason' : reason})
                                     logger.debug('queue size: {}'.format(self.bad_ip_queue.qsize()))
                                 else:
-                                    logger.info('line match {}. But IP in ingore list'.format(bad_ip))
+                                    logger.info('line match {}. But IP in ignore list'.format(bad_ip))
                     size = stat.st_size
 
     async def ban_ips(self):
@@ -164,7 +168,7 @@
         record time when this IP has been seen in ip_seen_at = { ip:{'time':<time>,'count':<counter} }
         and ban with pf
         """
-        logger.info('ban_ips sarted')
+        logger.info('ban_ips started')
         while True:
             ip_item = await self.bad_ip_queue.get()
             logger.debug('ban_ips awake')
@@ -185,9 +189,9 @@
         """
         check old ip in ip_seen_at : remove older than watch_while
         """
-        logger.info('clean_ips sarted with sleeptime={}'.format(self.sleeptime))
+        logger.info('clean_ips started with sleeptime={}'.format(self.sleeptime))
         while True:
-            await asyncio.sleep(self.sleeptime)
+            await asyncio.sleep(self.watch_while)
             to_remove = []
             for recorded_ip, data in self.ip_seen_at.items():
                 if time.time() - data['time'] >= self.watch_while:

--
Gitblit v1.9.3