func init() { SetLogger(New()) } // SetLogger устанавливает глобальный логгер. func SetLogger(l *Logger) { global = l } func FromContext(ctx context.Context) *Logger { l := global if logger, ok := ctx.Value(loggerContextKey).(*Logger); ok { l = logger } return l }
:= sc.(jaeger.SpanContext); ok { return l.With( zap.Stringer("trace_id", sc.TraceID()), zap.Stringer("span_id", sc.SpanID()), ).Sugar() } return l } func FromContext(ctx context.Context) *Logger { l := global if logger, ok := ctx.Value(loggerContextKey).(*Logger); ok { l = logger } span := opentracing.SpanFromContext(ctx) if span == nil { return l } return loggerWithSpanContext(l, span.Context()) }
но и между командами Выводы 57 *DRY - Don’t repeat yourself • Наличие общей библиотеки позволяет быстро добавлять общие решения на всю компанию • Разработчикам не приходится писать одни и те же механизмы для удовлетворения требований к сервисам
но и между командами Выводы 58 *DRY - Don’t repeat yourself • Наличие общей библиотеки позволяет быстро добавлять общие решения на всю компанию • Разработчикам не приходится писать одни и те же механизмы для удовлетворения требований к сервисам • Существует множество готовых механизмов, способных облегчить разработку и эксплуатацию ваших сервисов
но и между командами Выводы 59 *DRY - Don’t repeat yourself • Наличие общей библиотеки позволяет быстро добавлять общие решения на всю компанию • Разработчикам не приходится писать одни и те же механизмы для удовлетворения требований к сервисам • Существует множество готовых механизмов, способных облегчить разработку и эксплуатацию ваших сервисов • Чем раньше вы выделите платформенную библиотеку, тем проще в последствии будет внедрять общие решения на все ваши сервисы
но и между командами Выводы 60 *DRY - Don’t repeat yourself • Наличие общей библиотеки позволяет быстро добавлять общие решения на всю компанию • Разработчикам не приходится писать одни и те же механизмы для удовлетворения требований к сервисам • Существует множество готовых механизмов, способных облегчить разработку и эксплуатацию ваших сервисов • Чем раньше вы выделите платформенную библиотеку, тем проще в последствии будет внедрять общие решения на все ваши сервисы • Но и не стоит начинать стартап с написания платформы :-)