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# SECUREAUTH LABS. Copyright 2018 SecureAuth Corporation. All rights reserved.

2#

3# This software is provided under under a slightly modified version

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

5# for more information.

6#

7# Description: This logger is intended to be used by impacket instead

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

9# custom logging implementation.

10#

11

12 import logging

13 import sys

14

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

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

17# generated by the library with a predefined format

18

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

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

21

22 class ImpacketFormatter(logging.Formatter):

23 '''

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

25 '''

26 def __init__(self):

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

28

29 def format(self, record):

30 if record.levelno == logging.INFO:

31 record.bullet = '[*]'

32 elif record.levelno == logging.DEBUG:

33 record.bullet = '[+]'

34 elif record.levelno == logging.WARNING:

35 record.bullet = '[!]'

36 else:

37 record.bullet = '[-]'

38

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

40

41 class ImpacketFormatterTimeStamp(ImpacketFormatter):

42 '''

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

44 '''

45 def __init__(self):

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

47

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

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

50

51 def init(ts=False):

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

53 handler = logging.StreamHandler(sys.stdout)

54 if not ts:

55 handler.setFormatter(ImpacketFormatter())

56 else:

57 handler.setFormatter(ImpacketFormatterTimeStamp())

58 logging.getLogger().addHandler(handler)

59 logging.getLogger().setLevel(logging.INFO)