mirror of
https://gitea.com/Lydanne/buildx.git
synced 2025-05-18 17:37:46 +08:00

Removes gogo/protobuf from buildx and updates to a version of moby/buildkit where gogo is removed. This also changes how the proto files are generated. This is because newer versions of protobuf are more strict about name conflicts. If two files have the same name (even if they are relative paths) and are used in different protoc commands, they'll conflict in the registry. Since protobuf file generation doesn't work very well with `paths=source_relative`, this removes the `go:generate` expression and just relies on the dockerfile to perform the generation. Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>
98 lines
3.0 KiB
Go
98 lines
3.0 KiB
Go
/*
|
|
*
|
|
* Copyright 2017 gRPC authors.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
*/
|
|
|
|
package grpclog
|
|
|
|
import (
|
|
"io"
|
|
"os"
|
|
"strconv"
|
|
"strings"
|
|
|
|
"google.golang.org/grpc/grpclog/internal"
|
|
)
|
|
|
|
// LoggerV2 does underlying logging work for grpclog.
|
|
type LoggerV2 internal.LoggerV2
|
|
|
|
// SetLoggerV2 sets logger that is used in grpc to a V2 logger.
|
|
// Not mutex-protected, should be called before any gRPC functions.
|
|
func SetLoggerV2(l LoggerV2) {
|
|
if _, ok := l.(*componentData); ok {
|
|
panic("cannot use component logger as grpclog logger")
|
|
}
|
|
internal.LoggerV2Impl = l
|
|
internal.DepthLoggerV2Impl, _ = l.(internal.DepthLoggerV2)
|
|
}
|
|
|
|
// NewLoggerV2 creates a loggerV2 with the provided writers.
|
|
// Fatal logs will be written to errorW, warningW, infoW, followed by exit(1).
|
|
// Error logs will be written to errorW, warningW and infoW.
|
|
// Warning logs will be written to warningW and infoW.
|
|
// Info logs will be written to infoW.
|
|
func NewLoggerV2(infoW, warningW, errorW io.Writer) LoggerV2 {
|
|
return internal.NewLoggerV2(infoW, warningW, errorW, internal.LoggerV2Config{})
|
|
}
|
|
|
|
// NewLoggerV2WithVerbosity creates a loggerV2 with the provided writers and
|
|
// verbosity level.
|
|
func NewLoggerV2WithVerbosity(infoW, warningW, errorW io.Writer, v int) LoggerV2 {
|
|
return internal.NewLoggerV2(infoW, warningW, errorW, internal.LoggerV2Config{Verbosity: v})
|
|
}
|
|
|
|
// newLoggerV2 creates a loggerV2 to be used as default logger.
|
|
// All logs are written to stderr.
|
|
func newLoggerV2() LoggerV2 {
|
|
errorW := io.Discard
|
|
warningW := io.Discard
|
|
infoW := io.Discard
|
|
|
|
logLevel := os.Getenv("GRPC_GO_LOG_SEVERITY_LEVEL")
|
|
switch logLevel {
|
|
case "", "ERROR", "error": // If env is unset, set level to ERROR.
|
|
errorW = os.Stderr
|
|
case "WARNING", "warning":
|
|
warningW = os.Stderr
|
|
case "INFO", "info":
|
|
infoW = os.Stderr
|
|
}
|
|
|
|
var v int
|
|
vLevel := os.Getenv("GRPC_GO_LOG_VERBOSITY_LEVEL")
|
|
if vl, err := strconv.Atoi(vLevel); err == nil {
|
|
v = vl
|
|
}
|
|
|
|
jsonFormat := strings.EqualFold(os.Getenv("GRPC_GO_LOG_FORMATTER"), "json")
|
|
|
|
return internal.NewLoggerV2(infoW, warningW, errorW, internal.LoggerV2Config{
|
|
Verbosity: v,
|
|
FormatJSON: jsonFormat,
|
|
})
|
|
}
|
|
|
|
// DepthLoggerV2 logs at a specified call frame. If a LoggerV2 also implements
|
|
// DepthLoggerV2, the below functions will be called with the appropriate stack
|
|
// depth set for trivial functions the logger may ignore.
|
|
//
|
|
// # Experimental
|
|
//
|
|
// Notice: This type is EXPERIMENTAL and may be changed or removed in a
|
|
// later release.
|
|
type DepthLoggerV2 internal.DepthLoggerV2
|