mirror of https://github.com/fail2ban/fail2ban
- Improved logging in server
- Added logtarget option git-svn-id: https://fail2ban.svn.sourceforge.net/svnroot/fail2ban/trunk@263 a942ae1a-1317-0410-a47c-b1dcaea8d6050.x
parent
3d73f45531
commit
f248c460f2
|
@ -39,7 +39,8 @@ class Fail2banReader(ConfigReader):
|
||||||
ConfigReader.read(self, "fail2ban")
|
ConfigReader.read(self, "fail2ban")
|
||||||
|
|
||||||
def getOptions(self):
|
def getOptions(self):
|
||||||
opts = [["int", "loglevel", 1]]
|
opts = [["int", "loglevel", 1],
|
||||||
|
["string", "logtarget", "STDERR"]]
|
||||||
self.opts = ConfigReader.getOptions(self, "Definition", opts)
|
self.opts = ConfigReader.getOptions(self, "Definition", opts)
|
||||||
|
|
||||||
def convert(self):
|
def convert(self):
|
||||||
|
@ -47,5 +48,7 @@ class Fail2banReader(ConfigReader):
|
||||||
for opt in self.opts:
|
for opt in self.opts:
|
||||||
if opt == "loglevel":
|
if opt == "loglevel":
|
||||||
stream.append(["set", "loglevel", self.opts[opt]])
|
stream.append(["set", "loglevel", self.opts[opt]])
|
||||||
|
elif opt == "logtarget":
|
||||||
|
stream.append(["set", "logtarget", self.opts[opt]])
|
||||||
return stream
|
return stream
|
||||||
|
|
|
@ -9,3 +9,4 @@
|
||||||
|
|
||||||
loglevel = 3
|
loglevel = 3
|
||||||
|
|
||||||
|
logtarget = /var/log/fail2ban.log
|
||||||
|
|
|
@ -26,7 +26,7 @@ __license__ = "GPL"
|
||||||
|
|
||||||
from jail import Jail
|
from jail import Jail
|
||||||
from transmitter import Transmitter
|
from transmitter import Transmitter
|
||||||
import locale, logging
|
import locale, logging, sys
|
||||||
|
|
||||||
# Gets the instance of the logger.
|
# Gets the instance of the logger.
|
||||||
logSys = logging.getLogger("fail2ban.server")
|
logSys = logging.getLogger("fail2ban.server")
|
||||||
|
@ -37,8 +37,10 @@ class Server:
|
||||||
self.jails = dict()
|
self.jails = dict()
|
||||||
self.transm = Transmitter(self)
|
self.transm = Transmitter(self)
|
||||||
self.logLevel = 3
|
self.logLevel = 3
|
||||||
|
self.logTarget = "STDERR"
|
||||||
# Set logging level
|
# Set logging level
|
||||||
self.setLogLevel(self.logLevel)
|
self.setLogLevel(self.logLevel)
|
||||||
|
self.setLogTarget(self.logTarget)
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
# Start the communication
|
# Start the communication
|
||||||
|
@ -322,6 +324,33 @@ class Server:
|
||||||
|
|
||||||
def getLogLevel(self):
|
def getLogLevel(self):
|
||||||
return self.logLevel
|
return self.logLevel
|
||||||
|
|
||||||
|
def setLogTarget(self, target):
|
||||||
|
# Remove previous handler
|
||||||
|
logging.getLogger("fail2ban").handlers = []
|
||||||
|
self.logTarget = target
|
||||||
|
if target == "SYSLOG":
|
||||||
|
logSys.error("Not yet implemented")
|
||||||
|
return False
|
||||||
|
elif target == "STDERR":
|
||||||
|
hdlr = logging.StreamHandler(sys.stderr)
|
||||||
|
else:
|
||||||
|
# Target should be a file
|
||||||
|
try:
|
||||||
|
open(target, "a")
|
||||||
|
hdlr = logging.FileHandler(target)
|
||||||
|
except IOError:
|
||||||
|
logSys.error("Unable to log to " + target)
|
||||||
|
return False
|
||||||
|
# set a format which is simpler for console use
|
||||||
|
formatter = logging.Formatter('%(name)-16s: %(levelname)-6s %(message)s')
|
||||||
|
# tell the handler to use this format
|
||||||
|
hdlr.setFormatter(formatter)
|
||||||
|
logging.getLogger("fail2ban").addHandler(hdlr)
|
||||||
|
return True
|
||||||
|
|
||||||
|
def getLogTarget(self):
|
||||||
|
return self.logTarget
|
||||||
|
|
||||||
class ServerUnknownJail(Exception):
|
class ServerUnknownJail(Exception):
|
||||||
pass
|
pass
|
|
@ -103,6 +103,10 @@ class Transmitter:
|
||||||
value = int(action[1])
|
value = int(action[1])
|
||||||
self.server.setLogLevel(value)
|
self.server.setLogLevel(value)
|
||||||
return self.server.getLogLevel()
|
return self.server.getLogLevel()
|
||||||
|
elif name == "logtarget":
|
||||||
|
value = action[1]
|
||||||
|
self.server.setLogTarget(value)
|
||||||
|
return self.server.getLogTarget()
|
||||||
# Jail
|
# Jail
|
||||||
elif action[1] == "idle":
|
elif action[1] == "idle":
|
||||||
if action[2] == "on":
|
if action[2] == "on":
|
||||||
|
|
Loading…
Reference in New Issue