diff --git a/Logging-Advanced/employee.py b/Logging-Advanced/employee.py new file mode 100644 index 000000000..e5848de5b --- /dev/null +++ b/Logging-Advanced/employee.py @@ -0,0 +1,34 @@ +import logging + +logger = logging.getLogger(__name__) +logger.setLevel(logging.INFO) + +formatter = logging.Formatter('%(levelname)s:%(name)s:%(message)s') + +file_handler = logging.FileHandler('employee.log') +file_handler.setFormatter(formatter) + +logger.addHandler(file_handler) + + +class Employee: + """A sample Employee class""" + + def __init__(self, first, last): + self.first = first + self.last = last + + logger.info('Created Employee: {} - {}'.format(self.fullname, self.email)) + + @property + def email(self): + return '{}.{}@email.com'.format(self.first, self.last) + + @property + def fullname(self): + return '{} {}'.format(self.first, self.last) + + +emp_1 = Employee('John', 'Smith') +emp_2 = Employee('Corey', 'Schafer') +emp_3 = Employee('Jane', 'Doe') diff --git a/Logging-Advanced/log-sample.py b/Logging-Advanced/log-sample.py new file mode 100644 index 000000000..6ab3349d9 --- /dev/null +++ b/Logging-Advanced/log-sample.py @@ -0,0 +1,58 @@ +import logging +import employee + +logger = logging.getLogger(__name__) +logger.setLevel(logging.DEBUG) + +formatter = logging.Formatter('%(asctime)s:%(name)s:%(message)s') + +file_handler = logging.FileHandler('sample.log') +file_handler.setLevel(logging.ERROR) +file_handler.setFormatter(formatter) + +stream_handler = logging.StreamHandler() +stream_handler.setFormatter(formatter) + +logger.addHandler(file_handler) +logger.addHandler(stream_handler) + + +def add(x, y): + """Add Function""" + return x + y + + +def subtract(x, y): + """Subtract Function""" + return x - y + + +def multiply(x, y): + """Multiply Function""" + return x * y + + +def divide(x, y): + """Divide Function""" + try: + result = x / y + except ZeroDivisionError: + logger.exception('Tried to divide by zero') + else: + return result + + +num_1 = 10 +num_2 = 0 + +add_result = add(num_1, num_2) +logger.debug('Add: {} + {} = {}'.format(num_1, num_2, add_result)) + +sub_result = subtract(num_1, num_2) +logger.debug('Sub: {} - {} = {}'.format(num_1, num_2, sub_result)) + +mul_result = multiply(num_1, num_2) +logger.debug('Mul: {} * {} = {}'.format(num_1, num_2, mul_result)) + +div_result = divide(num_1, num_2) +logger.debug('Div: {} / {} = {}'.format(num_1, num_2, div_result)) diff --git a/Logging-Basics/employee.py b/Logging-Basics/employee.py new file mode 100644 index 000000000..4f72afc07 --- /dev/null +++ b/Logging-Basics/employee.py @@ -0,0 +1,28 @@ + +import logging + +logging.basicConfig(filename='employee.log', level=logging.INFO, + format='%(levelname)s:%(message)s') + + +class Employee: + """A sample Employee class""" + + def __init__(self, first, last): + self.first = first + self.last = last + + logging.info('Created Employee: {} - {}'.format(self.fullname, self.email)) + + @property + def email(self): + return '{}.{}@email.com'.format(self.first, self.last) + + @property + def fullname(self): + return '{} {}'.format(self.first, self.last) + + +emp_1 = Employee('John', 'Smith') +emp_2 = Employee('Corey', 'Schafer') +emp_3 = Employee('Jane', 'Doe') diff --git a/Logging-Basics/log-sample.py b/Logging-Basics/log-sample.py new file mode 100644 index 000000000..c0d117ae6 --- /dev/null +++ b/Logging-Basics/log-sample.py @@ -0,0 +1,51 @@ + +import logging + +# DEBUG: Detailed information, typically of interest only when diagnosing problems. + +# INFO: Confirmation that things are working as expected. + +# WARNING: An indication that something unexpected happened, or indicative of some problem in the near future (e.g. ‘disk space low’). The software is still working as expected. + +# ERROR: Due to a more serious problem, the software has not been able to perform some function. + +# CRITICAL: A serious error, indicating that the program itself may be unable to continue running. + +logging.basicConfig(filename='test.log', level=logging.DEBUG, + format='%(asctime)s:%(levelname)s:%(message)s') + + +def add(x, y): + """Add Function""" + return x + y + + +def subtract(x, y): + """Subtract Function""" + return x - y + + +def multiply(x, y): + """Multiply Function""" + return x * y + + +def divide(x, y): + """Divide Function""" + return x / y + + +num_1 = 20 +num_2 = 10 + +add_result = add(num_1, num_2) +logging.debug('Add: {} + {} = {}'.format(num_1, num_2, add_result)) + +sub_result = subtract(num_1, num_2) +logging.debug('Sub: {} - {} = {}'.format(num_1, num_2, sub_result)) + +mul_result = multiply(num_1, num_2) +logging.debug('Mul: {} * {} = {}'.format(num_1, num_2, mul_result)) + +div_result = divide(num_1, num_2) +logging.debug('Div: {} / {} = {}'.format(num_1, num_2, div_result)) diff --git a/Logging-Basics/snippets.txt b/Logging-Basics/snippets.txt new file mode 100644 index 000000000..5be4ff82f --- /dev/null +++ b/Logging-Basics/snippets.txt @@ -0,0 +1,10 @@ + +# DEBUG: Detailed information, typically of interest only when diagnosing problems. + +# INFO: Confirmation that things are working as expected. + +# WARNING: An indication that something unexpected happened, or indicative of some problem in the near future (e.g. ‘disk space low’). The software is still working as expected. + +# ERROR: Due to a more serious problem, the software has not been able to perform some function. + +# CRITICAL: A serious error, indicating that the program itself may be unable to continue running.