npx skills add https://github.com/dasien/retrowarden --skill 'Logging Strategies'创建全面的日志记录,以便在生产环境中调试、监控和分析应用程序行为。
import logging
import json
from datetime import datetime
import uuid
class StructuredLogger:
def __init__(self, service_name):
self.service = service_name
self.logger = logging.getLogger(service_name)
def log(self, level, message, **context):
log_entry = {
'timestamp': datetime.utcnow().isoformat(),
'service': self.service,
'level': level,
'message': message,
**context
}
log_line = json.dumps(log_entry)
if level == 'ERROR':
self.logger.error(log_line)
elif level == 'WARNING':
self.logger.warning(log_line)
elif level == 'INFO':
self.logger.info(log_line)
else:
self.logger.debug(log_line)
def with_context(self, **context):
class ContextLogger:
def __init__(self, parent, ctx):
self.parent = parent
self.context = ctx
def info(self, message, **extra):
self.parent.log('INFO', message, **{**self.context, **extra})
def error(self, message, **extra):
self.parent.log('ERROR', message, **{**self.context, **extra})
return ContextLogger(self, context)
# 使用示例
logger = StructuredLogger('api-service')
def handle_request(request_id, user_id):
request_logger = logger.with_context(
request_id=request_id,
user_id=user_id
)
request_logger.info("处理请求中")
try:
# 业务逻辑
result = process_order()
request_logger.info("订单处理完成", order_id=result.id)
except Exception as e:
request_logger.error("订单处理失败", error=str(e), exc_info=True)
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
每周安装次数
–
代码仓库
GitHub 星标数
4
首次出现时间
–
安全审计
Create comprehensive logging that enables debugging, monitoring, and analysis of application behavior in production.
import logging
import json
from datetime import datetime
import uuid
class StructuredLogger:
def __init__(self, service_name):
self.service = service_name
self.logger = logging.getLogger(service_name)
def log(self, level, message, **context):
log_entry = {
'timestamp': datetime.utcnow().isoformat(),
'service': self.service,
'level': level,
'message': message,
**context
}
log_line = json.dumps(log_entry)
if level == 'ERROR':
self.logger.error(log_line)
elif level == 'WARNING':
self.logger.warning(log_line)
elif level == 'INFO':
self.logger.info(log_line)
else:
self.logger.debug(log_line)
def with_context(self, **context):
class ContextLogger:
def __init__(self, parent, ctx):
self.parent = parent
self.context = ctx
def info(self, message, **extra):
self.parent.log('INFO', message, **{**self.context, **extra})
def error(self, message, **extra):
self.parent.log('ERROR', message, **{**self.context, **extra})
return ContextLogger(self, context)
# Usage
logger = StructuredLogger('api-service')
def handle_request(request_id, user_id):
request_logger = logger.with_context(
request_id=request_id,
user_id=user_id
)
request_logger.info("Processing request")
try:
# Business logic
result = process_order()
request_logger.info("Order processed", order_id=result.id)
except Exception as e:
request_logger.error("Order failed", error=str(e), exc_info=True)
Weekly Installs
–
Repository
GitHub Stars
4
First Seen
–
Security Audits
Azure Data Explorer (Kusto) 查询技能:KQL数据分析、日志遥测与时间序列处理
114,200 周安装