text: #!/usr/bin/env python
  # -*- coding: utf-8 -*-
  #
  # Copyright (c) 2013-2016, OVH SAS.
  # All rights reserved.
  #
  # Redistribution and use in source and binary forms, with or without
  # modification, are permitted provided that the following conditions are met:
  #
  #  * Redistributions of source code must retain the above copyright
  #    notice, this list of conditions and the following disclaimer.
  #  * Redistributions in binary form must reproduce the above copyright
  #    notice, this list of conditions and the following disclaimer in the
  #    documentation and/or other materials provided with the distribution.
  #  * Neither the name of OVH SAS nor the
  #    names of its contributors may be used to endorse or promote products
  #    derived from this software without specific prior written permission.
  #
  # THIS SOFTWARE IS PROVIDED BY OVH SAS AND CONTRIBUTORS ````AS IS'' AND ANY
  # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  # DISCLAIMED. IN NO EVENT SHALL OVH SAS AND CONTRIBUTORS BE LIABLE FOR ANY
  # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
  """
  Djehouty intends to be a set of logging formatters and handlers to easily
  send log entries.
  """
  
  import ssl
  import logging
  from djehouty.tcp import TCPSocketHandler
  from djehouty.libgelf.formatters import GELFFormatter
  
  class GELFTCPSocketHandler(TCPSocketHandler):
      """Graylog Extended Log Format handler using TCP
      """
  
      def __init__(self, host, port=12200, use_tls=False, cert_reqs=ssl.CERT_NONE,
                   ca_certs=None, static_fields=None, sock_timeout=1,
                   level=logging.NOTSET, null_character=False):
          super(GELFTCPSocketHandler, self).__init__(host, port, use_tls, \
                cert_reqs, ca_certs, sock_timeout, level)
          if static_fields == None:
              static_fields = {}
          self.setFormatter(GELFFormatter(static_fields, \
                                          null_character=null_character))
  