Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions logstash/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

from logstash.handler_tcp import TCPLogstashHandler
from logstash.handler_udp import UDPLogstashHandler, LogstashHandler
from logstash.handler_file import FileLogstashHandler
try:
from logstash.handler_amqp import AMQPLogstashHandler
except:
Expand Down
28 changes: 28 additions & 0 deletions logstash/handler_file.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
from logging.handlers import RotatingFileHandler
from logstash import formatter


class FileLogstashHandler(RotatingFileHandler, object):
"""Python logging handler for Logstash. Save events to file.
:param filename: Path to the log file.
:param mode: File mode to write.
:param maxBytes: Max file size before rotate.
:param backupCount: Max number of backup log files.
:param encoding: Encoding type.
:param delay: Delay write log.
:param message_type: The type of the message (default logstash).
:param fqdn; Indicates whether to show fully qualified domain name or not (default False).
:param version: version of logstash event schema (default is 0).
:param tags: list of tags for a logger (default is None).
"""

def __init__(self, filename, mode='a', maxBytes=0, backupCount=0, encoding=None, delay=False, message_type='logstash', tags=None, fqdn=False, version=0):
RotatingFileHandler.__init__(self, filename, mode, maxBytes, backupCount, encoding, delay)

if version == 1:
self.formatter = formatter.LogstashFormatterVersion1(message_type, tags, fqdn)
else:
self.formatter = formatter.LogstashFormatterVersion0(message_type, tags, fqdn)

def makePickle(self, record):
return self.formatter.format(record) + b'\n'