96 lines
3.8 KiB
Python
96 lines
3.8 KiB
Python
|
#! /usr/bin/env python3
|
||
|
# Advanced Python Logging - Developed by acidvegas in Python (https://git.acid.vegas/apv)
|
||
|
# unittest.py
|
||
|
|
||
|
import logging
|
||
|
import random
|
||
|
import time
|
||
|
|
||
|
# prevent bytecode files (.pyc) from being written
|
||
|
from sys import dont_write_bytecode
|
||
|
dont_write_bytecode = True
|
||
|
|
||
|
import apv
|
||
|
|
||
|
# Test console logging with custom date format
|
||
|
apv.setup_logging(level='DEBUG', date_format='%H:%M:%S')
|
||
|
logging.debug('Testing debug message in console.')
|
||
|
logging.info('Testing info message in console.')
|
||
|
logging.warning('Testing warning message in console.')
|
||
|
logging.error('Testing error message in console.')
|
||
|
logging.critical('Testing critical message in console.')
|
||
|
|
||
|
print()
|
||
|
|
||
|
# Test console logging with details
|
||
|
time.sleep(2)
|
||
|
apv.setup_logging(level='DEBUG', date_format='%Y-%m-%d %H:%M:%S', show_details=True)
|
||
|
logging.debug('Testing debug message in console with details.')
|
||
|
logging.info('Testing info message in console with details.')
|
||
|
logging.warning('Testing warning message in console with details.')
|
||
|
logging.error('Testing error message in console with details.')
|
||
|
logging.critical('Testing critical message in console with details.')
|
||
|
|
||
|
print()
|
||
|
|
||
|
# Test disk logging with JSON and regular rotation
|
||
|
logging.debug('Starting test: Disk logging with JSON and regular rotation...')
|
||
|
time.sleep(2)
|
||
|
apv.setup_logging(level='DEBUG', log_to_disk=True, max_log_size=1024, max_backups=3, log_file_name='json_log', json_log=True, show_details=True)
|
||
|
for i in range(100):
|
||
|
log_level = random.choice([logging.DEBUG, logging.INFO, logging.WARNING, logging.ERROR, logging.CRITICAL])
|
||
|
logging.log(log_level, f'Log entry {i+1} for JSON & regular rotation test.')
|
||
|
time.sleep(0.1)
|
||
|
|
||
|
print()
|
||
|
|
||
|
# Test disk logging with rotation & compression
|
||
|
logging.debug('Starting test: Disk logging with rotation & compression...')
|
||
|
time.sleep(2)
|
||
|
apv.setup_logging(level='DEBUG', log_to_disk=True, max_log_size=1024, max_backups=3, log_file_name='plain_log', show_details=True, compress_backups=True)
|
||
|
for i in range(100):
|
||
|
log_level = random.choice([logging.DEBUG, logging.INFO, logging.WARNING, logging.ERROR, logging.CRITICAL])
|
||
|
logging.log(log_level, f'Log entry {i+1} for disk rotation & compression test.')
|
||
|
time.sleep(0.1)
|
||
|
|
||
|
logging.info('Test completed. Check the logs directory for disk logging & JSON logging tests.')
|
||
|
|
||
|
print()
|
||
|
|
||
|
try:
|
||
|
import ecs_logging
|
||
|
except ImportError:
|
||
|
pass
|
||
|
else:
|
||
|
# Test ECS logging
|
||
|
logging.debug('Starting test: ECS logging...')
|
||
|
time.sleep(2)
|
||
|
apv.setup_logging(level='DEBUG', ecs_log=True)
|
||
|
logging.debug('This is a test log message to ECS.')
|
||
|
logging.info('This is a test log message to ECS.')
|
||
|
logging.warning('This is a test log message to ECS.')
|
||
|
logging.error('This is a test log message to ECS.')
|
||
|
logging.critical('This is a test log message to ECS.')
|
||
|
|
||
|
print()
|
||
|
|
||
|
# Test Graylog handler (Uncomment & configure to test)
|
||
|
# logging.debug('Starting test: Graylog handler...')
|
||
|
# time.sleep(2)
|
||
|
# apv.setup_logging(level='DEBUG', enable_graylog=True, graylog_host='your_graylog_host', graylog_port=12201)
|
||
|
# logging.debug('This is a test log message to Graylog.')
|
||
|
# logging.info('This is a test log message to Graylog.')
|
||
|
# logging.warning('This is a test log message to Graylog.')
|
||
|
# logging.error('This is a test log message to Graylog.')
|
||
|
# logging.critical('This is a test log message to Graylog.')
|
||
|
|
||
|
# Test CloudWatch handler (Uncomment & configure to test)
|
||
|
# logging.debug('Starting test: CloudWatch handler...')
|
||
|
# time.sleep(2)
|
||
|
# apv.setup_logging(level='DEBUG', enable_cloudwatch=True, cloudwatch_group_name='your_log_group', cloudwatch_stream_name='your_log_stream')
|
||
|
# logging.debug('This is a test log message to CloudWatch.')
|
||
|
# logging.info('This is a test log message to CloudWatch.')
|
||
|
# logging.warning('This is a test log message to CloudWatch.')
|
||
|
# logging.error('This is a test log message to CloudWatch.')
|
||
|
# logging.critical('This is a test log message to CloudWatch.')
|