 9bdcbe0447
			
		
	
	9bdcbe0447
	
	
	
		
			
			Major integrations and fixes: - Added BACKBEAT SDK integration for P2P operation timing - Implemented beat-aware status tracking for distributed operations - Added Docker secrets support for secure license management - Resolved KACHING license validation via HTTPS/TLS - Updated docker-compose configuration for clean stack deployment - Disabled rollback policies to prevent deployment failures - Added license credential storage (CHORUS-DEV-MULTI-001) Technical improvements: - BACKBEAT P2P operation tracking with phase management - Enhanced configuration system with file-based secrets - Improved error handling for license validation - Clean separation of KACHING and CHORUS deployment stacks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			95 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Package log is the logging library used by IPFS & libp2p
 | |
| // (https://github.com/ipfs/go-ipfs).
 | |
| package log
 | |
| 
 | |
| import (
 | |
| 	"time"
 | |
| 
 | |
| 	"go.uber.org/zap"
 | |
| 	"go.uber.org/zap/zapcore"
 | |
| )
 | |
| 
 | |
| // StandardLogger provides API compatibility with standard printf loggers
 | |
| // eg. go-logging
 | |
| type StandardLogger interface {
 | |
| 	Debug(args ...interface{})
 | |
| 	Debugf(format string, args ...interface{})
 | |
| 	Error(args ...interface{})
 | |
| 	Errorf(format string, args ...interface{})
 | |
| 	Fatal(args ...interface{})
 | |
| 	Fatalf(format string, args ...interface{})
 | |
| 	Info(args ...interface{})
 | |
| 	Infof(format string, args ...interface{})
 | |
| 	Panic(args ...interface{})
 | |
| 	Panicf(format string, args ...interface{})
 | |
| 	Warn(args ...interface{})
 | |
| 	Warnf(format string, args ...interface{})
 | |
| }
 | |
| 
 | |
| // EventLogger extends the StandardLogger interface to allow for log items
 | |
| // containing structured metadata
 | |
| type EventLogger interface {
 | |
| 	StandardLogger
 | |
| }
 | |
| 
 | |
| // Logger retrieves an event logger by name
 | |
| func Logger(system string) *ZapEventLogger {
 | |
| 	if len(system) == 0 {
 | |
| 		setuplog := getLogger("setup-logger")
 | |
| 		setuplog.Error("Missing name parameter")
 | |
| 		system = "undefined"
 | |
| 	}
 | |
| 
 | |
| 	logger := getLogger(system)
 | |
| 	skipLogger := logger.Desugar().WithOptions(zap.AddCallerSkip(1)).Sugar()
 | |
| 
 | |
| 	return &ZapEventLogger{
 | |
| 		system:        system,
 | |
| 		SugaredLogger: *logger,
 | |
| 		skipLogger:    *skipLogger,
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // ZapEventLogger implements the EventLogger and wraps a go-logging Logger
 | |
| type ZapEventLogger struct {
 | |
| 	zap.SugaredLogger
 | |
| 	// used to fix the caller location when calling Warning and Warningf.
 | |
| 	skipLogger zap.SugaredLogger
 | |
| 	system     string
 | |
| }
 | |
| 
 | |
| // Warning is for compatibility
 | |
| // Deprecated: use Warn(args ...interface{}) instead
 | |
| func (logger *ZapEventLogger) Warning(args ...interface{}) {
 | |
| 	logger.skipLogger.Warn(args...)
 | |
| }
 | |
| 
 | |
| // Warningf is for compatibility
 | |
| // Deprecated: use Warnf(format string, args ...interface{}) instead
 | |
| func (logger *ZapEventLogger) Warningf(format string, args ...interface{}) {
 | |
| 	logger.skipLogger.Warnf(format, args...)
 | |
| }
 | |
| 
 | |
| // FormatRFC3339 returns the given time in UTC with RFC3999Nano format.
 | |
| func FormatRFC3339(t time.Time) string {
 | |
| 	return t.UTC().Format(time.RFC3339Nano)
 | |
| }
 | |
| 
 | |
| func WithStacktrace(l *ZapEventLogger, level LogLevel) *ZapEventLogger {
 | |
| 	copyLogger := *l
 | |
| 	copyLogger.SugaredLogger = *copyLogger.SugaredLogger.Desugar().
 | |
| 		WithOptions(zap.AddStacktrace(zapcore.Level(level))).Sugar()
 | |
| 	copyLogger.skipLogger = *copyLogger.SugaredLogger.Desugar().WithOptions(zap.AddCallerSkip(1)).Sugar()
 | |
| 	return ©Logger
 | |
| }
 | |
| 
 | |
| // WithSkip returns a new logger that skips the specified number of stack frames when reporting the
 | |
| // line/file.
 | |
| func WithSkip(l *ZapEventLogger, skip int) *ZapEventLogger {
 | |
| 	copyLogger := *l
 | |
| 	copyLogger.SugaredLogger = *copyLogger.SugaredLogger.Desugar().
 | |
| 		WithOptions(zap.AddCallerSkip(skip)).Sugar()
 | |
| 	copyLogger.skipLogger = *copyLogger.SugaredLogger.Desugar().WithOptions(zap.AddCallerSkip(1)).Sugar()
 | |
| 	return ©Logger
 | |
| }
 |