Coverage for /root/GitHubProjects/impacket/impacket/examples/logger.py: 26%

# Coverage for /root/GitHubProjects/impacket/impacket/examples/logger.py : 26%

## 26 statements

Hot-keys on this page

r m x p toggle line displays

j k next/prev highlighted chunk

0 (zero) top of page

1 (one) first highlighted chunk

1# Impacket - Collection of Python classes for working with network protocols.

2#

3# SECUREAUTH LABS. Copyright (C) 2019 SecureAuth Corporation. All rights reserved.

4#

5# This software is provided under a slightly modified version

6# of the Apache Software License. See the accompanying LICENSE file

7# for more information.

8#

9# Description:

10# This logger is intended to be used by impacket instead

11# of printing directly. This will allow other libraries to use their

12# custom logging implementation.

13#

14

15 import logging

16 import sys

17

18# This module can be used by scripts using the Impacket library

19# in order to configure the root logger to output events

20# generated by the library with a predefined format

21

22# If the scripts want to generate log entries, they can write

23# directly to the root logger (logging.info, debug, etc).

24

25 class ImpacketFormatter(logging.Formatter):

26 '''

27 Prefixing logged messages through the custom attribute 'bullet'.

28 '''

29 def __init__(self):

30 logging.Formatter.__init__(self,'%(bullet)s %(message)s', None)

31

32 def format(self, record):

33 if record.levelno == logging.INFO:

34 record.bullet = '[*]'

35 elif record.levelno == logging.DEBUG:

36 record.bullet = '[+]'

37 elif record.levelno == logging.WARNING:

38 record.bullet = '[!]'

39 else:

40 record.bullet = '[-]'

41

42 return logging.Formatter.format(self, record)

43

44 class ImpacketFormatterTimeStamp(ImpacketFormatter):

45 '''

46 Prefixing logged messages through the custom attribute 'bullet'.

47 '''

48 def __init__(self):

49 logging.Formatter.__init__(self,'[%(asctime)-15s] %(bullet)s %(message)s', None)

50

51 def formatTime(self, record, datefmt=None):

52 return ImpacketFormatter.formatTime(self, record, datefmt="%Y-%m-%d %H:%M:%S")

53

54 def init(ts=False):

55 # We add a StreamHandler and formatter to the root logger

56 handler = logging.StreamHandler(sys.stdout)

57 if not ts:

58 handler.setFormatter(ImpacketFormatter())

59 else:

60 handler.setFormatter(ImpacketFormatterTimeStamp())

61 logging.getLogger().addHandler(handler)

62 logging.getLogger().setLevel(logging.INFO)