Spaces:
Running
Running
File size: 1,271 Bytes
93bc171 2e4fd26 93bc171 2e4fd26 93bc171 2e4fd26 93bc171 395275a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
import logging
import time
import sys
import codecs
sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())
sys.stderr = codecs.getwriter("utf-8")(sys.stderr.detach())
logger = logging.getLogger(__name__)
stream_handler = logging.StreamHandler()
log_filename = "output.log"
file_handler = logging.FileHandler(filename=log_filename , encoding='utf-8')
handlers = [stream_handler, file_handler]
class TimeFilter(logging.Filter):
def filter(self, record):
return "Running" in record.getMessage()
logger.addFilter(TimeFilter())
# Configure the logging module
logging.basicConfig(
level=logging.INFO,
format="%(name)s %(asctime)s - %(levelname)s - %(message)s",
handlers=handlers,
)
import logging
def time_logger(func):
"""Decorator function to log time taken by any function."""
# @wraps(func)
def wrapper(*args, **kwargs):
start_time = time.time() # Start time before function execution
result = func(*args, **kwargs) # Function execution
end_time = time.time() # End time after function execution
execution_time = end_time - start_time # Calculate execution time
logger.info(f"Running {func.__name__}: --- {execution_time} seconds ---")
return result
return wrapper |