- Change file mode from 644 to 755 for all project files - Add chain_id parameter to get_balance RPC endpoint with default "ait-devnet" - Rename Miner.extra_meta_data to extra_metadata for consistency
44 lines
1.4 KiB
Python
Executable File
44 lines
1.4 KiB
Python
Executable File
import logging
|
|
import sys
|
|
from logging.handlers import RotatingFileHandler
|
|
import json
|
|
from datetime import datetime
|
|
|
|
class JsonFormatter(logging.Formatter):
|
|
def format(self, record):
|
|
log_record = {
|
|
"timestamp": datetime.utcnow().isoformat() + "Z",
|
|
"level": record.levelname,
|
|
"logger": record.name,
|
|
"message": record.getMessage()
|
|
}
|
|
|
|
# Add any extra arguments passed to the logger
|
|
if hasattr(record, "chain_id"):
|
|
log_record["chain_id"] = record.chain_id
|
|
if hasattr(record, "supported_chains"):
|
|
log_record["supported_chains"] = record.supported_chains
|
|
if hasattr(record, "height"):
|
|
log_record["height"] = record.height
|
|
if hasattr(record, "hash"):
|
|
log_record["hash"] = record.hash
|
|
if hasattr(record, "proposer"):
|
|
log_record["proposer"] = record.proposer
|
|
if hasattr(record, "error"):
|
|
log_record["error"] = record.error
|
|
|
|
return json.dumps(log_record)
|
|
|
|
def get_logger(name: str) -> logging.Logger:
|
|
logger = logging.getLogger(name)
|
|
|
|
if not logger.handlers:
|
|
logger.setLevel(logging.INFO)
|
|
|
|
# Console handler
|
|
console_handler = logging.StreamHandler(sys.stdout)
|
|
console_handler.setFormatter(JsonFormatter())
|
|
logger.addHandler(console_handler)
|
|
|
|
return logger
|