planetscale 0.2.0 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.buildkite/pipeline.yml +21 -0
- data/.github/workflows/ci.yml +9 -1
- data/.github/workflows/gem-push.yml +9 -2
- data/.licenses/go/github.com/matoous/go-nanoid/v2.dep.yml +34 -0
- data/.licenses/go/github.com/planetscale/planetscale-go/planetscale.dep.yml +56 -3
- data/.licenses/go/github.com/planetscale/sql-proxy/proxy.dep.yml +205 -172
- data/.licenses/go/go.uber.org/zap/buffer.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap/internal/bufferpool.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap/internal/color.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap/internal/exit.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap/zapcore.dep.yml +1 -1
- data/.licenses/go/go.uber.org/zap.dep.yml +1 -1
- data/README.md +11 -8
- data/controller.go +24 -26
- data/go.mod +4 -3
- data/go.sum +42 -27
- data/lib/generators/planetscale/install_generator.rb +8 -6
- data/lib/planetscale/version.rb +1 -1
- data/lib/planetscale.rb +14 -15
- data/planetscale.gemspec +2 -2
- data/proxy/planetscale-darwin.h +1 -1
- data/proxy/planetscale-darwin.so +0 -0
- data/proxy/planetscale-linux.h +1 -1
- data/proxy/planetscale-linux.so +0 -0
- data/proxy.go +1 -5
- metadata +6 -342
- data/vendor/github.com/armon/circbuf/.gitignore +0 -22
- data/vendor/github.com/armon/circbuf/LICENSE +0 -20
- data/vendor/github.com/armon/circbuf/README.md +0 -28
- data/vendor/github.com/armon/circbuf/circbuf.go +0 -92
- data/vendor/github.com/armon/circbuf/go.mod +0 -1
- data/vendor/github.com/golang/protobuf/AUTHORS +0 -3
- data/vendor/github.com/golang/protobuf/CONTRIBUTORS +0 -3
- data/vendor/github.com/golang/protobuf/LICENSE +0 -28
- data/vendor/github.com/golang/protobuf/proto/buffer.go +0 -324
- data/vendor/github.com/golang/protobuf/proto/defaults.go +0 -63
- data/vendor/github.com/golang/protobuf/proto/deprecated.go +0 -113
- data/vendor/github.com/golang/protobuf/proto/discard.go +0 -58
- data/vendor/github.com/golang/protobuf/proto/extensions.go +0 -356
- data/vendor/github.com/golang/protobuf/proto/properties.go +0 -306
- data/vendor/github.com/golang/protobuf/proto/proto.go +0 -167
- data/vendor/github.com/golang/protobuf/proto/registry.go +0 -317
- data/vendor/github.com/golang/protobuf/proto/text_decode.go +0 -801
- data/vendor/github.com/golang/protobuf/proto/text_encode.go +0 -560
- data/vendor/github.com/golang/protobuf/proto/wire.go +0 -78
- data/vendor/github.com/golang/protobuf/proto/wrappers.go +0 -34
- data/vendor/github.com/gorilla/mux/AUTHORS +0 -8
- data/vendor/github.com/gorilla/mux/LICENSE +0 -27
- data/vendor/github.com/gorilla/mux/README.md +0 -805
- data/vendor/github.com/gorilla/mux/doc.go +0 -306
- data/vendor/github.com/gorilla/mux/go.mod +0 -3
- data/vendor/github.com/gorilla/mux/middleware.go +0 -74
- data/vendor/github.com/gorilla/mux/mux.go +0 -606
- data/vendor/github.com/gorilla/mux/regexp.go +0 -388
- data/vendor/github.com/gorilla/mux/route.go +0 -736
- data/vendor/github.com/gorilla/mux/test_helpers.go +0 -19
- data/vendor/github.com/hashicorp/go-cleanhttp/LICENSE +0 -363
- data/vendor/github.com/hashicorp/go-cleanhttp/README.md +0 -30
- data/vendor/github.com/hashicorp/go-cleanhttp/cleanhttp.go +0 -58
- data/vendor/github.com/hashicorp/go-cleanhttp/doc.go +0 -20
- data/vendor/github.com/hashicorp/go-cleanhttp/go.mod +0 -3
- data/vendor/github.com/hashicorp/go-cleanhttp/handlers.go +0 -48
- data/vendor/github.com/mitchellh/go-homedir/LICENSE +0 -21
- data/vendor/github.com/mitchellh/go-homedir/README.md +0 -14
- data/vendor/github.com/mitchellh/go-homedir/go.mod +0 -1
- data/vendor/github.com/mitchellh/go-homedir/homedir.go +0 -167
- data/vendor/github.com/pkg/errors/.gitignore +0 -24
- data/vendor/github.com/pkg/errors/.travis.yml +0 -10
- data/vendor/github.com/pkg/errors/LICENSE +0 -23
- data/vendor/github.com/pkg/errors/Makefile +0 -44
- data/vendor/github.com/pkg/errors/README.md +0 -59
- data/vendor/github.com/pkg/errors/appveyor.yml +0 -32
- data/vendor/github.com/pkg/errors/errors.go +0 -288
- data/vendor/github.com/pkg/errors/go113.go +0 -38
- data/vendor/github.com/pkg/errors/stack.go +0 -177
- data/vendor/github.com/planetscale/planetscale-go/planetscale/backups.go +0 -139
- data/vendor/github.com/planetscale/planetscale-go/planetscale/branches.go +0 -258
- data/vendor/github.com/planetscale/planetscale-go/planetscale/certs.go +0 -142
- data/vendor/github.com/planetscale/planetscale-go/planetscale/client.go +0 -305
- data/vendor/github.com/planetscale/planetscale-go/planetscale/databases.go +0 -131
- data/vendor/github.com/planetscale/planetscale-go/planetscale/deploy_requests.go +0 -368
- data/vendor/github.com/planetscale/planetscale-go/planetscale/organizations.go +0 -78
- data/vendor/github.com/planetscale/planetscale-go/planetscale/service_tokens.go +0 -163
- data/vendor/github.com/planetscale/sql-proxy/proxy/client.go +0 -467
- data/vendor/github.com/planetscale/sql-proxy/proxy/tls_cache.go +0 -73
- data/vendor/go.uber.org/atomic/.codecov.yml +0 -19
- data/vendor/go.uber.org/atomic/.gitignore +0 -12
- data/vendor/go.uber.org/atomic/.travis.yml +0 -27
- data/vendor/go.uber.org/atomic/CHANGELOG.md +0 -76
- data/vendor/go.uber.org/atomic/LICENSE.txt +0 -19
- data/vendor/go.uber.org/atomic/Makefile +0 -78
- data/vendor/go.uber.org/atomic/README.md +0 -63
- data/vendor/go.uber.org/atomic/bool.go +0 -81
- data/vendor/go.uber.org/atomic/bool_ext.go +0 -53
- data/vendor/go.uber.org/atomic/doc.go +0 -23
- data/vendor/go.uber.org/atomic/duration.go +0 -82
- data/vendor/go.uber.org/atomic/duration_ext.go +0 -40
- data/vendor/go.uber.org/atomic/error.go +0 -51
- data/vendor/go.uber.org/atomic/error_ext.go +0 -39
- data/vendor/go.uber.org/atomic/float64.go +0 -76
- data/vendor/go.uber.org/atomic/float64_ext.go +0 -47
- data/vendor/go.uber.org/atomic/gen.go +0 -26
- data/vendor/go.uber.org/atomic/go.mod +0 -8
- data/vendor/go.uber.org/atomic/go.sum +0 -9
- data/vendor/go.uber.org/atomic/int32.go +0 -102
- data/vendor/go.uber.org/atomic/int64.go +0 -102
- data/vendor/go.uber.org/atomic/nocmp.go +0 -35
- data/vendor/go.uber.org/atomic/string.go +0 -54
- data/vendor/go.uber.org/atomic/string_ext.go +0 -43
- data/vendor/go.uber.org/atomic/uint32.go +0 -102
- data/vendor/go.uber.org/atomic/uint64.go +0 -102
- data/vendor/go.uber.org/atomic/value.go +0 -31
- data/vendor/go.uber.org/multierr/.codecov.yml +0 -15
- data/vendor/go.uber.org/multierr/.gitignore +0 -4
- data/vendor/go.uber.org/multierr/.travis.yml +0 -23
- data/vendor/go.uber.org/multierr/CHANGELOG.md +0 -60
- data/vendor/go.uber.org/multierr/LICENSE.txt +0 -19
- data/vendor/go.uber.org/multierr/Makefile +0 -42
- data/vendor/go.uber.org/multierr/README.md +0 -23
- data/vendor/go.uber.org/multierr/error.go +0 -449
- data/vendor/go.uber.org/multierr/glide.yaml +0 -8
- data/vendor/go.uber.org/multierr/go.mod +0 -8
- data/vendor/go.uber.org/multierr/go.sum +0 -11
- data/vendor/go.uber.org/multierr/go113.go +0 -52
- data/vendor/go.uber.org/zap/.codecov.yml +0 -17
- data/vendor/go.uber.org/zap/.gitignore +0 -32
- data/vendor/go.uber.org/zap/.readme.tmpl +0 -109
- data/vendor/go.uber.org/zap/.travis.yml +0 -23
- data/vendor/go.uber.org/zap/CHANGELOG.md +0 -432
- data/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md +0 -75
- data/vendor/go.uber.org/zap/CONTRIBUTING.md +0 -81
- data/vendor/go.uber.org/zap/FAQ.md +0 -156
- data/vendor/go.uber.org/zap/LICENSE.txt +0 -19
- data/vendor/go.uber.org/zap/Makefile +0 -63
- data/vendor/go.uber.org/zap/README.md +0 -134
- data/vendor/go.uber.org/zap/array.go +0 -320
- data/vendor/go.uber.org/zap/buffer/buffer.go +0 -123
- data/vendor/go.uber.org/zap/buffer/pool.go +0 -49
- data/vendor/go.uber.org/zap/checklicense.sh +0 -17
- data/vendor/go.uber.org/zap/config.go +0 -264
- data/vendor/go.uber.org/zap/doc.go +0 -113
- data/vendor/go.uber.org/zap/encoder.go +0 -79
- data/vendor/go.uber.org/zap/error.go +0 -80
- data/vendor/go.uber.org/zap/field.go +0 -539
- data/vendor/go.uber.org/zap/flag.go +0 -39
- data/vendor/go.uber.org/zap/glide.yaml +0 -34
- data/vendor/go.uber.org/zap/global.go +0 -168
- data/vendor/go.uber.org/zap/global_go112.go +0 -26
- data/vendor/go.uber.org/zap/global_prego112.go +0 -26
- data/vendor/go.uber.org/zap/go.mod +0 -13
- data/vendor/go.uber.org/zap/go.sum +0 -56
- data/vendor/go.uber.org/zap/http_handler.go +0 -81
- data/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go +0 -31
- data/vendor/go.uber.org/zap/internal/color/color.go +0 -44
- data/vendor/go.uber.org/zap/internal/exit/exit.go +0 -64
- data/vendor/go.uber.org/zap/level.go +0 -132
- data/vendor/go.uber.org/zap/logger.go +0 -344
- data/vendor/go.uber.org/zap/options.go +0 -140
- data/vendor/go.uber.org/zap/sink.go +0 -161
- data/vendor/go.uber.org/zap/stacktrace.go +0 -85
- data/vendor/go.uber.org/zap/sugar.go +0 -304
- data/vendor/go.uber.org/zap/time.go +0 -27
- data/vendor/go.uber.org/zap/writer.go +0 -99
- data/vendor/go.uber.org/zap/zapcore/console_encoder.go +0 -161
- data/vendor/go.uber.org/zap/zapcore/core.go +0 -113
- data/vendor/go.uber.org/zap/zapcore/doc.go +0 -24
- data/vendor/go.uber.org/zap/zapcore/encoder.go +0 -443
- data/vendor/go.uber.org/zap/zapcore/entry.go +0 -264
- data/vendor/go.uber.org/zap/zapcore/error.go +0 -115
- data/vendor/go.uber.org/zap/zapcore/field.go +0 -227
- data/vendor/go.uber.org/zap/zapcore/hook.go +0 -68
- data/vendor/go.uber.org/zap/zapcore/increase_level.go +0 -66
- data/vendor/go.uber.org/zap/zapcore/json_encoder.go +0 -534
- data/vendor/go.uber.org/zap/zapcore/level.go +0 -175
- data/vendor/go.uber.org/zap/zapcore/level_strings.go +0 -46
- data/vendor/go.uber.org/zap/zapcore/marshaler.go +0 -61
- data/vendor/go.uber.org/zap/zapcore/memory_encoder.go +0 -179
- data/vendor/go.uber.org/zap/zapcore/sampler.go +0 -208
- data/vendor/go.uber.org/zap/zapcore/tee.go +0 -81
- data/vendor/go.uber.org/zap/zapcore/write_syncer.go +0 -123
- data/vendor/golang.org/x/net/AUTHORS +0 -3
- data/vendor/golang.org/x/net/CONTRIBUTORS +0 -3
- data/vendor/golang.org/x/net/LICENSE +0 -27
- data/vendor/golang.org/x/net/PATENTS +0 -22
- data/vendor/golang.org/x/net/context/context.go +0 -56
- data/vendor/golang.org/x/net/context/ctxhttp/ctxhttp.go +0 -71
- data/vendor/golang.org/x/net/context/go17.go +0 -73
- data/vendor/golang.org/x/net/context/go19.go +0 -21
- data/vendor/golang.org/x/net/context/pre_go17.go +0 -301
- data/vendor/golang.org/x/net/context/pre_go19.go +0 -110
- data/vendor/golang.org/x/oauth2/.travis.yml +0 -13
- data/vendor/golang.org/x/oauth2/AUTHORS +0 -3
- data/vendor/golang.org/x/oauth2/CONTRIBUTING.md +0 -26
- data/vendor/golang.org/x/oauth2/CONTRIBUTORS +0 -3
- data/vendor/golang.org/x/oauth2/LICENSE +0 -27
- data/vendor/golang.org/x/oauth2/README.md +0 -36
- data/vendor/golang.org/x/oauth2/go.mod +0 -9
- data/vendor/golang.org/x/oauth2/go.sum +0 -361
- data/vendor/golang.org/x/oauth2/internal/client_appengine.go +0 -14
- data/vendor/golang.org/x/oauth2/internal/doc.go +0 -6
- data/vendor/golang.org/x/oauth2/internal/oauth2.go +0 -37
- data/vendor/golang.org/x/oauth2/internal/token.go +0 -294
- data/vendor/golang.org/x/oauth2/internal/transport.go +0 -33
- data/vendor/golang.org/x/oauth2/oauth2.go +0 -381
- data/vendor/golang.org/x/oauth2/token.go +0 -178
- data/vendor/golang.org/x/oauth2/transport.go +0 -89
- data/vendor/google.golang.org/appengine/LICENSE +0 -202
- data/vendor/google.golang.org/appengine/internal/api.go +0 -678
- data/vendor/google.golang.org/appengine/internal/api_classic.go +0 -169
- data/vendor/google.golang.org/appengine/internal/api_common.go +0 -123
- data/vendor/google.golang.org/appengine/internal/app_id.go +0 -28
- data/vendor/google.golang.org/appengine/internal/base/api_base.pb.go +0 -308
- data/vendor/google.golang.org/appengine/internal/base/api_base.proto +0 -33
- data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.pb.go +0 -4367
- data/vendor/google.golang.org/appengine/internal/datastore/datastore_v3.proto +0 -551
- data/vendor/google.golang.org/appengine/internal/identity.go +0 -55
- data/vendor/google.golang.org/appengine/internal/identity_classic.go +0 -61
- data/vendor/google.golang.org/appengine/internal/identity_flex.go +0 -11
- data/vendor/google.golang.org/appengine/internal/identity_vm.go +0 -134
- data/vendor/google.golang.org/appengine/internal/internal.go +0 -110
- data/vendor/google.golang.org/appengine/internal/log/log_service.pb.go +0 -1313
- data/vendor/google.golang.org/appengine/internal/log/log_service.proto +0 -150
- data/vendor/google.golang.org/appengine/internal/main.go +0 -16
- data/vendor/google.golang.org/appengine/internal/main_common.go +0 -7
- data/vendor/google.golang.org/appengine/internal/main_vm.go +0 -69
- data/vendor/google.golang.org/appengine/internal/metadata.go +0 -60
- data/vendor/google.golang.org/appengine/internal/net.go +0 -56
- data/vendor/google.golang.org/appengine/internal/regen.sh +0 -40
- data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.pb.go +0 -361
- data/vendor/google.golang.org/appengine/internal/remote_api/remote_api.proto +0 -44
- data/vendor/google.golang.org/appengine/internal/transaction.go +0 -115
- data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.pb.go +0 -527
- data/vendor/google.golang.org/appengine/internal/urlfetch/urlfetch_service.proto +0 -64
- data/vendor/google.golang.org/appengine/urlfetch/urlfetch.go +0 -210
- data/vendor/google.golang.org/protobuf/AUTHORS +0 -3
- data/vendor/google.golang.org/protobuf/CONTRIBUTORS +0 -3
- data/vendor/google.golang.org/protobuf/LICENSE +0 -27
- data/vendor/google.golang.org/protobuf/PATENTS +0 -22
- data/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +0 -773
- data/vendor/google.golang.org/protobuf/encoding/prototext/doc.go +0 -7
- data/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +0 -371
- data/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +0 -538
- data/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +0 -318
- data/vendor/google.golang.org/protobuf/internal/descopts/options.go +0 -29
- data/vendor/google.golang.org/protobuf/internal/detrand/rand.go +0 -69
- data/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +0 -213
- data/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +0 -241
- data/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +0 -207
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +0 -665
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +0 -190
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go +0 -161
- data/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go +0 -373
- data/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +0 -29
- data/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +0 -265
- data/vendor/google.golang.org/protobuf/internal/errors/errors.go +0 -89
- data/vendor/google.golang.org/protobuf/internal/errors/is_go112.go +0 -39
- data/vendor/google.golang.org/protobuf/internal/errors/is_go113.go +0 -12
- data/vendor/google.golang.org/protobuf/internal/filedesc/build.go +0 -158
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +0 -631
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +0 -471
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +0 -704
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +0 -450
- data/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +0 -356
- data/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +0 -107
- data/vendor/google.golang.org/protobuf/internal/filetype/build.go +0 -297
- data/vendor/google.golang.org/protobuf/internal/flags/flags.go +0 -24
- data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +0 -9
- data/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +0 -9
- data/vendor/google.golang.org/protobuf/internal/genid/any_gen.go +0 -34
- data/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +0 -106
- data/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +0 -829
- data/vendor/google.golang.org/protobuf/internal/genid/doc.go +0 -11
- data/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go +0 -34
- data/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go +0 -19
- data/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go +0 -31
- data/vendor/google.golang.org/protobuf/internal/genid/goname.go +0 -25
- data/vendor/google.golang.org/protobuf/internal/genid/map_entry.go +0 -16
- data/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go +0 -31
- data/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go +0 -116
- data/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go +0 -34
- data/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +0 -184
- data/vendor/google.golang.org/protobuf/internal/genid/wrappers.go +0 -13
- data/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go +0 -175
- data/vendor/google.golang.org/protobuf/internal/impl/api_export.go +0 -177
- data/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +0 -141
- data/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +0 -223
- data/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +0 -830
- data/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +0 -5637
- data/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +0 -388
- data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +0 -37
- data/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +0 -11
- data/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +0 -217
- data/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +0 -123
- data/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go +0 -209
- data/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +0 -557
- data/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +0 -17
- data/vendor/google.golang.org/protobuf/internal/impl/convert.go +0 -496
- data/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +0 -141
- data/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +0 -121
- data/vendor/google.golang.org/protobuf/internal/impl/decode.go +0 -276
- data/vendor/google.golang.org/protobuf/internal/impl/encode.go +0 -201
- data/vendor/google.golang.org/protobuf/internal/impl/enum.go +0 -21
- data/vendor/google.golang.org/protobuf/internal/impl/extension.go +0 -156
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +0 -219
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +0 -92
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +0 -176
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +0 -81
- data/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +0 -558
- data/vendor/google.golang.org/protobuf/internal/impl/merge.go +0 -176
- data/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go +0 -209
- data/vendor/google.golang.org/protobuf/internal/impl/message.go +0 -276
- data/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +0 -465
- data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +0 -543
- data/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +0 -249
- data/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +0 -178
- data/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +0 -174
- data/vendor/google.golang.org/protobuf/internal/impl/validate.go +0 -576
- data/vendor/google.golang.org/protobuf/internal/impl/weak.go +0 -74
- data/vendor/google.golang.org/protobuf/internal/order/order.go +0 -89
- data/vendor/google.golang.org/protobuf/internal/order/range.go +0 -115
- data/vendor/google.golang.org/protobuf/internal/pragma/pragma.go +0 -29
- data/vendor/google.golang.org/protobuf/internal/set/ints.go +0 -58
- data/vendor/google.golang.org/protobuf/internal/strs/strings.go +0 -196
- data/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go +0 -27
- data/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +0 -94
- data/vendor/google.golang.org/protobuf/internal/version/version.go +0 -79
- data/vendor/google.golang.org/protobuf/proto/checkinit.go +0 -71
- data/vendor/google.golang.org/protobuf/proto/decode.go +0 -278
- data/vendor/google.golang.org/protobuf/proto/decode_gen.go +0 -603
- data/vendor/google.golang.org/protobuf/proto/doc.go +0 -94
- data/vendor/google.golang.org/protobuf/proto/encode.go +0 -319
- data/vendor/google.golang.org/protobuf/proto/encode_gen.go +0 -97
- data/vendor/google.golang.org/protobuf/proto/equal.go +0 -167
- data/vendor/google.golang.org/protobuf/proto/extension.go +0 -92
- data/vendor/google.golang.org/protobuf/proto/merge.go +0 -139
- data/vendor/google.golang.org/protobuf/proto/messageset.go +0 -93
- data/vendor/google.golang.org/protobuf/proto/proto.go +0 -43
- data/vendor/google.golang.org/protobuf/proto/proto_methods.go +0 -19
- data/vendor/google.golang.org/protobuf/proto/proto_reflect.go +0 -19
- data/vendor/google.golang.org/protobuf/proto/reset.go +0 -43
- data/vendor/google.golang.org/protobuf/proto/size.go +0 -97
- data/vendor/google.golang.org/protobuf/proto/size_gen.go +0 -55
- data/vendor/google.golang.org/protobuf/proto/wrappers.go +0 -29
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go +0 -276
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go +0 -248
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go +0 -286
- data/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go +0 -374
- data/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go +0 -252
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +0 -77
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +0 -504
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +0 -128
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +0 -461
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +0 -665
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +0 -285
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go +0 -59
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +0 -411
- data/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +0 -98
- data/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +0 -869
- data/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go +0 -15
- data/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +0 -167
- data/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go +0 -44
- data/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +0 -56
- data/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +0 -4039
- data/vendor/modules.txt +0 -79
@@ -1,85 +0,0 @@
|
|
1
|
-
// Copyright (c) 2016 Uber Technologies, Inc.
|
2
|
-
//
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
8
|
-
// furnished to do so, subject to the following conditions:
|
9
|
-
//
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
11
|
-
// all copies or substantial portions of the Software.
|
12
|
-
//
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
-
// THE SOFTWARE.
|
20
|
-
|
21
|
-
package zap
|
22
|
-
|
23
|
-
import (
|
24
|
-
"runtime"
|
25
|
-
"sync"
|
26
|
-
|
27
|
-
"go.uber.org/zap/internal/bufferpool"
|
28
|
-
)
|
29
|
-
|
30
|
-
var (
|
31
|
-
_stacktracePool = sync.Pool{
|
32
|
-
New: func() interface{} {
|
33
|
-
return newProgramCounters(64)
|
34
|
-
},
|
35
|
-
}
|
36
|
-
)
|
37
|
-
|
38
|
-
func takeStacktrace(skip int) string {
|
39
|
-
buffer := bufferpool.Get()
|
40
|
-
defer buffer.Free()
|
41
|
-
programCounters := _stacktracePool.Get().(*programCounters)
|
42
|
-
defer _stacktracePool.Put(programCounters)
|
43
|
-
|
44
|
-
var numFrames int
|
45
|
-
for {
|
46
|
-
// Skip the call to runtime.Callers and takeStacktrace so that the
|
47
|
-
// program counters start at the caller of takeStacktrace.
|
48
|
-
numFrames = runtime.Callers(skip+2, programCounters.pcs)
|
49
|
-
if numFrames < len(programCounters.pcs) {
|
50
|
-
break
|
51
|
-
}
|
52
|
-
// Don't put the too-short counter slice back into the pool; this lets
|
53
|
-
// the pool adjust if we consistently take deep stacktraces.
|
54
|
-
programCounters = newProgramCounters(len(programCounters.pcs) * 2)
|
55
|
-
}
|
56
|
-
|
57
|
-
i := 0
|
58
|
-
frames := runtime.CallersFrames(programCounters.pcs[:numFrames])
|
59
|
-
|
60
|
-
// Note: On the last iteration, frames.Next() returns false, with a valid
|
61
|
-
// frame, but we ignore this frame. The last frame is a a runtime frame which
|
62
|
-
// adds noise, since it's only either runtime.main or runtime.goexit.
|
63
|
-
for frame, more := frames.Next(); more; frame, more = frames.Next() {
|
64
|
-
if i != 0 {
|
65
|
-
buffer.AppendByte('\n')
|
66
|
-
}
|
67
|
-
i++
|
68
|
-
buffer.AppendString(frame.Function)
|
69
|
-
buffer.AppendByte('\n')
|
70
|
-
buffer.AppendByte('\t')
|
71
|
-
buffer.AppendString(frame.File)
|
72
|
-
buffer.AppendByte(':')
|
73
|
-
buffer.AppendInt(int64(frame.Line))
|
74
|
-
}
|
75
|
-
|
76
|
-
return buffer.String()
|
77
|
-
}
|
78
|
-
|
79
|
-
type programCounters struct {
|
80
|
-
pcs []uintptr
|
81
|
-
}
|
82
|
-
|
83
|
-
func newProgramCounters(size int) *programCounters {
|
84
|
-
return &programCounters{make([]uintptr, size)}
|
85
|
-
}
|
@@ -1,304 +0,0 @@
|
|
1
|
-
// Copyright (c) 2016 Uber Technologies, Inc.
|
2
|
-
//
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
8
|
-
// furnished to do so, subject to the following conditions:
|
9
|
-
//
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
11
|
-
// all copies or substantial portions of the Software.
|
12
|
-
//
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
-
// THE SOFTWARE.
|
20
|
-
|
21
|
-
package zap
|
22
|
-
|
23
|
-
import (
|
24
|
-
"fmt"
|
25
|
-
|
26
|
-
"go.uber.org/zap/zapcore"
|
27
|
-
|
28
|
-
"go.uber.org/multierr"
|
29
|
-
)
|
30
|
-
|
31
|
-
const (
|
32
|
-
_oddNumberErrMsg = "Ignored key without a value."
|
33
|
-
_nonStringKeyErrMsg = "Ignored key-value pairs with non-string keys."
|
34
|
-
)
|
35
|
-
|
36
|
-
// A SugaredLogger wraps the base Logger functionality in a slower, but less
|
37
|
-
// verbose, API. Any Logger can be converted to a SugaredLogger with its Sugar
|
38
|
-
// method.
|
39
|
-
//
|
40
|
-
// Unlike the Logger, the SugaredLogger doesn't insist on structured logging.
|
41
|
-
// For each log level, it exposes three methods: one for loosely-typed
|
42
|
-
// structured logging, one for println-style formatting, and one for
|
43
|
-
// printf-style formatting. For example, SugaredLoggers can produce InfoLevel
|
44
|
-
// output with Infow ("info with" structured context), Info, or Infof.
|
45
|
-
type SugaredLogger struct {
|
46
|
-
base *Logger
|
47
|
-
}
|
48
|
-
|
49
|
-
// Desugar unwraps a SugaredLogger, exposing the original Logger. Desugaring
|
50
|
-
// is quite inexpensive, so it's reasonable for a single application to use
|
51
|
-
// both Loggers and SugaredLoggers, converting between them on the boundaries
|
52
|
-
// of performance-sensitive code.
|
53
|
-
func (s *SugaredLogger) Desugar() *Logger {
|
54
|
-
base := s.base.clone()
|
55
|
-
base.callerSkip -= 2
|
56
|
-
return base
|
57
|
-
}
|
58
|
-
|
59
|
-
// Named adds a sub-scope to the logger's name. See Logger.Named for details.
|
60
|
-
func (s *SugaredLogger) Named(name string) *SugaredLogger {
|
61
|
-
return &SugaredLogger{base: s.base.Named(name)}
|
62
|
-
}
|
63
|
-
|
64
|
-
// With adds a variadic number of fields to the logging context. It accepts a
|
65
|
-
// mix of strongly-typed Field objects and loosely-typed key-value pairs. When
|
66
|
-
// processing pairs, the first element of the pair is used as the field key
|
67
|
-
// and the second as the field value.
|
68
|
-
//
|
69
|
-
// For example,
|
70
|
-
// sugaredLogger.With(
|
71
|
-
// "hello", "world",
|
72
|
-
// "failure", errors.New("oh no"),
|
73
|
-
// Stack(),
|
74
|
-
// "count", 42,
|
75
|
-
// "user", User{Name: "alice"},
|
76
|
-
// )
|
77
|
-
// is the equivalent of
|
78
|
-
// unsugared.With(
|
79
|
-
// String("hello", "world"),
|
80
|
-
// String("failure", "oh no"),
|
81
|
-
// Stack(),
|
82
|
-
// Int("count", 42),
|
83
|
-
// Object("user", User{Name: "alice"}),
|
84
|
-
// )
|
85
|
-
//
|
86
|
-
// Note that the keys in key-value pairs should be strings. In development,
|
87
|
-
// passing a non-string key panics. In production, the logger is more
|
88
|
-
// forgiving: a separate error is logged, but the key-value pair is skipped
|
89
|
-
// and execution continues. Passing an orphaned key triggers similar behavior:
|
90
|
-
// panics in development and errors in production.
|
91
|
-
func (s *SugaredLogger) With(args ...interface{}) *SugaredLogger {
|
92
|
-
return &SugaredLogger{base: s.base.With(s.sweetenFields(args)...)}
|
93
|
-
}
|
94
|
-
|
95
|
-
// Debug uses fmt.Sprint to construct and log a message.
|
96
|
-
func (s *SugaredLogger) Debug(args ...interface{}) {
|
97
|
-
s.log(DebugLevel, "", args, nil)
|
98
|
-
}
|
99
|
-
|
100
|
-
// Info uses fmt.Sprint to construct and log a message.
|
101
|
-
func (s *SugaredLogger) Info(args ...interface{}) {
|
102
|
-
s.log(InfoLevel, "", args, nil)
|
103
|
-
}
|
104
|
-
|
105
|
-
// Warn uses fmt.Sprint to construct and log a message.
|
106
|
-
func (s *SugaredLogger) Warn(args ...interface{}) {
|
107
|
-
s.log(WarnLevel, "", args, nil)
|
108
|
-
}
|
109
|
-
|
110
|
-
// Error uses fmt.Sprint to construct and log a message.
|
111
|
-
func (s *SugaredLogger) Error(args ...interface{}) {
|
112
|
-
s.log(ErrorLevel, "", args, nil)
|
113
|
-
}
|
114
|
-
|
115
|
-
// DPanic uses fmt.Sprint to construct and log a message. In development, the
|
116
|
-
// logger then panics. (See DPanicLevel for details.)
|
117
|
-
func (s *SugaredLogger) DPanic(args ...interface{}) {
|
118
|
-
s.log(DPanicLevel, "", args, nil)
|
119
|
-
}
|
120
|
-
|
121
|
-
// Panic uses fmt.Sprint to construct and log a message, then panics.
|
122
|
-
func (s *SugaredLogger) Panic(args ...interface{}) {
|
123
|
-
s.log(PanicLevel, "", args, nil)
|
124
|
-
}
|
125
|
-
|
126
|
-
// Fatal uses fmt.Sprint to construct and log a message, then calls os.Exit.
|
127
|
-
func (s *SugaredLogger) Fatal(args ...interface{}) {
|
128
|
-
s.log(FatalLevel, "", args, nil)
|
129
|
-
}
|
130
|
-
|
131
|
-
// Debugf uses fmt.Sprintf to log a templated message.
|
132
|
-
func (s *SugaredLogger) Debugf(template string, args ...interface{}) {
|
133
|
-
s.log(DebugLevel, template, args, nil)
|
134
|
-
}
|
135
|
-
|
136
|
-
// Infof uses fmt.Sprintf to log a templated message.
|
137
|
-
func (s *SugaredLogger) Infof(template string, args ...interface{}) {
|
138
|
-
s.log(InfoLevel, template, args, nil)
|
139
|
-
}
|
140
|
-
|
141
|
-
// Warnf uses fmt.Sprintf to log a templated message.
|
142
|
-
func (s *SugaredLogger) Warnf(template string, args ...interface{}) {
|
143
|
-
s.log(WarnLevel, template, args, nil)
|
144
|
-
}
|
145
|
-
|
146
|
-
// Errorf uses fmt.Sprintf to log a templated message.
|
147
|
-
func (s *SugaredLogger) Errorf(template string, args ...interface{}) {
|
148
|
-
s.log(ErrorLevel, template, args, nil)
|
149
|
-
}
|
150
|
-
|
151
|
-
// DPanicf uses fmt.Sprintf to log a templated message. In development, the
|
152
|
-
// logger then panics. (See DPanicLevel for details.)
|
153
|
-
func (s *SugaredLogger) DPanicf(template string, args ...interface{}) {
|
154
|
-
s.log(DPanicLevel, template, args, nil)
|
155
|
-
}
|
156
|
-
|
157
|
-
// Panicf uses fmt.Sprintf to log a templated message, then panics.
|
158
|
-
func (s *SugaredLogger) Panicf(template string, args ...interface{}) {
|
159
|
-
s.log(PanicLevel, template, args, nil)
|
160
|
-
}
|
161
|
-
|
162
|
-
// Fatalf uses fmt.Sprintf to log a templated message, then calls os.Exit.
|
163
|
-
func (s *SugaredLogger) Fatalf(template string, args ...interface{}) {
|
164
|
-
s.log(FatalLevel, template, args, nil)
|
165
|
-
}
|
166
|
-
|
167
|
-
// Debugw logs a message with some additional context. The variadic key-value
|
168
|
-
// pairs are treated as they are in With.
|
169
|
-
//
|
170
|
-
// When debug-level logging is disabled, this is much faster than
|
171
|
-
// s.With(keysAndValues).Debug(msg)
|
172
|
-
func (s *SugaredLogger) Debugw(msg string, keysAndValues ...interface{}) {
|
173
|
-
s.log(DebugLevel, msg, nil, keysAndValues)
|
174
|
-
}
|
175
|
-
|
176
|
-
// Infow logs a message with some additional context. The variadic key-value
|
177
|
-
// pairs are treated as they are in With.
|
178
|
-
func (s *SugaredLogger) Infow(msg string, keysAndValues ...interface{}) {
|
179
|
-
s.log(InfoLevel, msg, nil, keysAndValues)
|
180
|
-
}
|
181
|
-
|
182
|
-
// Warnw logs a message with some additional context. The variadic key-value
|
183
|
-
// pairs are treated as they are in With.
|
184
|
-
func (s *SugaredLogger) Warnw(msg string, keysAndValues ...interface{}) {
|
185
|
-
s.log(WarnLevel, msg, nil, keysAndValues)
|
186
|
-
}
|
187
|
-
|
188
|
-
// Errorw logs a message with some additional context. The variadic key-value
|
189
|
-
// pairs are treated as they are in With.
|
190
|
-
func (s *SugaredLogger) Errorw(msg string, keysAndValues ...interface{}) {
|
191
|
-
s.log(ErrorLevel, msg, nil, keysAndValues)
|
192
|
-
}
|
193
|
-
|
194
|
-
// DPanicw logs a message with some additional context. In development, the
|
195
|
-
// logger then panics. (See DPanicLevel for details.) The variadic key-value
|
196
|
-
// pairs are treated as they are in With.
|
197
|
-
func (s *SugaredLogger) DPanicw(msg string, keysAndValues ...interface{}) {
|
198
|
-
s.log(DPanicLevel, msg, nil, keysAndValues)
|
199
|
-
}
|
200
|
-
|
201
|
-
// Panicw logs a message with some additional context, then panics. The
|
202
|
-
// variadic key-value pairs are treated as they are in With.
|
203
|
-
func (s *SugaredLogger) Panicw(msg string, keysAndValues ...interface{}) {
|
204
|
-
s.log(PanicLevel, msg, nil, keysAndValues)
|
205
|
-
}
|
206
|
-
|
207
|
-
// Fatalw logs a message with some additional context, then calls os.Exit. The
|
208
|
-
// variadic key-value pairs are treated as they are in With.
|
209
|
-
func (s *SugaredLogger) Fatalw(msg string, keysAndValues ...interface{}) {
|
210
|
-
s.log(FatalLevel, msg, nil, keysAndValues)
|
211
|
-
}
|
212
|
-
|
213
|
-
// Sync flushes any buffered log entries.
|
214
|
-
func (s *SugaredLogger) Sync() error {
|
215
|
-
return s.base.Sync()
|
216
|
-
}
|
217
|
-
|
218
|
-
func (s *SugaredLogger) log(lvl zapcore.Level, template string, fmtArgs []interface{}, context []interface{}) {
|
219
|
-
// If logging at this level is completely disabled, skip the overhead of
|
220
|
-
// string formatting.
|
221
|
-
if lvl < DPanicLevel && !s.base.Core().Enabled(lvl) {
|
222
|
-
return
|
223
|
-
}
|
224
|
-
|
225
|
-
// Format with Sprint, Sprintf, or neither.
|
226
|
-
msg := template
|
227
|
-
if msg == "" && len(fmtArgs) > 0 {
|
228
|
-
msg = fmt.Sprint(fmtArgs...)
|
229
|
-
} else if msg != "" && len(fmtArgs) > 0 {
|
230
|
-
msg = fmt.Sprintf(template, fmtArgs...)
|
231
|
-
}
|
232
|
-
|
233
|
-
if ce := s.base.Check(lvl, msg); ce != nil {
|
234
|
-
ce.Write(s.sweetenFields(context)...)
|
235
|
-
}
|
236
|
-
}
|
237
|
-
|
238
|
-
func (s *SugaredLogger) sweetenFields(args []interface{}) []Field {
|
239
|
-
if len(args) == 0 {
|
240
|
-
return nil
|
241
|
-
}
|
242
|
-
|
243
|
-
// Allocate enough space for the worst case; if users pass only structured
|
244
|
-
// fields, we shouldn't penalize them with extra allocations.
|
245
|
-
fields := make([]Field, 0, len(args))
|
246
|
-
var invalid invalidPairs
|
247
|
-
|
248
|
-
for i := 0; i < len(args); {
|
249
|
-
// This is a strongly-typed field. Consume it and move on.
|
250
|
-
if f, ok := args[i].(Field); ok {
|
251
|
-
fields = append(fields, f)
|
252
|
-
i++
|
253
|
-
continue
|
254
|
-
}
|
255
|
-
|
256
|
-
// Make sure this element isn't a dangling key.
|
257
|
-
if i == len(args)-1 {
|
258
|
-
s.base.DPanic(_oddNumberErrMsg, Any("ignored", args[i]))
|
259
|
-
break
|
260
|
-
}
|
261
|
-
|
262
|
-
// Consume this value and the next, treating them as a key-value pair. If the
|
263
|
-
// key isn't a string, add this pair to the slice of invalid pairs.
|
264
|
-
key, val := args[i], args[i+1]
|
265
|
-
if keyStr, ok := key.(string); !ok {
|
266
|
-
// Subsequent errors are likely, so allocate once up front.
|
267
|
-
if cap(invalid) == 0 {
|
268
|
-
invalid = make(invalidPairs, 0, len(args)/2)
|
269
|
-
}
|
270
|
-
invalid = append(invalid, invalidPair{i, key, val})
|
271
|
-
} else {
|
272
|
-
fields = append(fields, Any(keyStr, val))
|
273
|
-
}
|
274
|
-
i += 2
|
275
|
-
}
|
276
|
-
|
277
|
-
// If we encountered any invalid key-value pairs, log an error.
|
278
|
-
if len(invalid) > 0 {
|
279
|
-
s.base.DPanic(_nonStringKeyErrMsg, Array("invalid", invalid))
|
280
|
-
}
|
281
|
-
return fields
|
282
|
-
}
|
283
|
-
|
284
|
-
type invalidPair struct {
|
285
|
-
position int
|
286
|
-
key, value interface{}
|
287
|
-
}
|
288
|
-
|
289
|
-
func (p invalidPair) MarshalLogObject(enc zapcore.ObjectEncoder) error {
|
290
|
-
enc.AddInt64("position", int64(p.position))
|
291
|
-
Any("key", p.key).AddTo(enc)
|
292
|
-
Any("value", p.value).AddTo(enc)
|
293
|
-
return nil
|
294
|
-
}
|
295
|
-
|
296
|
-
type invalidPairs []invalidPair
|
297
|
-
|
298
|
-
func (ps invalidPairs) MarshalLogArray(enc zapcore.ArrayEncoder) error {
|
299
|
-
var err error
|
300
|
-
for i := range ps {
|
301
|
-
err = multierr.Append(err, enc.AppendObject(ps[i]))
|
302
|
-
}
|
303
|
-
return err
|
304
|
-
}
|
@@ -1,27 +0,0 @@
|
|
1
|
-
// Copyright (c) 2016 Uber Technologies, Inc.
|
2
|
-
//
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
8
|
-
// furnished to do so, subject to the following conditions:
|
9
|
-
//
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
11
|
-
// all copies or substantial portions of the Software.
|
12
|
-
//
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
-
// THE SOFTWARE.
|
20
|
-
|
21
|
-
package zap
|
22
|
-
|
23
|
-
import "time"
|
24
|
-
|
25
|
-
func timeToMillis(t time.Time) int64 {
|
26
|
-
return t.UnixNano() / int64(time.Millisecond)
|
27
|
-
}
|
@@ -1,99 +0,0 @@
|
|
1
|
-
// Copyright (c) 2016 Uber Technologies, Inc.
|
2
|
-
//
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
8
|
-
// furnished to do so, subject to the following conditions:
|
9
|
-
//
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
11
|
-
// all copies or substantial portions of the Software.
|
12
|
-
//
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
-
// THE SOFTWARE.
|
20
|
-
|
21
|
-
package zap
|
22
|
-
|
23
|
-
import (
|
24
|
-
"fmt"
|
25
|
-
"io"
|
26
|
-
"io/ioutil"
|
27
|
-
|
28
|
-
"go.uber.org/zap/zapcore"
|
29
|
-
|
30
|
-
"go.uber.org/multierr"
|
31
|
-
)
|
32
|
-
|
33
|
-
// Open is a high-level wrapper that takes a variadic number of URLs, opens or
|
34
|
-
// creates each of the specified resources, and combines them into a locked
|
35
|
-
// WriteSyncer. It also returns any error encountered and a function to close
|
36
|
-
// any opened files.
|
37
|
-
//
|
38
|
-
// Passing no URLs returns a no-op WriteSyncer. Zap handles URLs without a
|
39
|
-
// scheme and URLs with the "file" scheme. Third-party code may register
|
40
|
-
// factories for other schemes using RegisterSink.
|
41
|
-
//
|
42
|
-
// URLs with the "file" scheme must use absolute paths on the local
|
43
|
-
// filesystem. No user, password, port, fragments, or query parameters are
|
44
|
-
// allowed, and the hostname must be empty or "localhost".
|
45
|
-
//
|
46
|
-
// Since it's common to write logs to the local filesystem, URLs without a
|
47
|
-
// scheme (e.g., "/var/log/foo.log") are treated as local file paths. Without
|
48
|
-
// a scheme, the special paths "stdout" and "stderr" are interpreted as
|
49
|
-
// os.Stdout and os.Stderr. When specified without a scheme, relative file
|
50
|
-
// paths also work.
|
51
|
-
func Open(paths ...string) (zapcore.WriteSyncer, func(), error) {
|
52
|
-
writers, close, err := open(paths)
|
53
|
-
if err != nil {
|
54
|
-
return nil, nil, err
|
55
|
-
}
|
56
|
-
|
57
|
-
writer := CombineWriteSyncers(writers...)
|
58
|
-
return writer, close, nil
|
59
|
-
}
|
60
|
-
|
61
|
-
func open(paths []string) ([]zapcore.WriteSyncer, func(), error) {
|
62
|
-
writers := make([]zapcore.WriteSyncer, 0, len(paths))
|
63
|
-
closers := make([]io.Closer, 0, len(paths))
|
64
|
-
close := func() {
|
65
|
-
for _, c := range closers {
|
66
|
-
c.Close()
|
67
|
-
}
|
68
|
-
}
|
69
|
-
|
70
|
-
var openErr error
|
71
|
-
for _, path := range paths {
|
72
|
-
sink, err := newSink(path)
|
73
|
-
if err != nil {
|
74
|
-
openErr = multierr.Append(openErr, fmt.Errorf("couldn't open sink %q: %v", path, err))
|
75
|
-
continue
|
76
|
-
}
|
77
|
-
writers = append(writers, sink)
|
78
|
-
closers = append(closers, sink)
|
79
|
-
}
|
80
|
-
if openErr != nil {
|
81
|
-
close()
|
82
|
-
return writers, nil, openErr
|
83
|
-
}
|
84
|
-
|
85
|
-
return writers, close, nil
|
86
|
-
}
|
87
|
-
|
88
|
-
// CombineWriteSyncers is a utility that combines multiple WriteSyncers into a
|
89
|
-
// single, locked WriteSyncer. If no inputs are supplied, it returns a no-op
|
90
|
-
// WriteSyncer.
|
91
|
-
//
|
92
|
-
// It's provided purely as a convenience; the result is no different from
|
93
|
-
// using zapcore.NewMultiWriteSyncer and zapcore.Lock individually.
|
94
|
-
func CombineWriteSyncers(writers ...zapcore.WriteSyncer) zapcore.WriteSyncer {
|
95
|
-
if len(writers) == 0 {
|
96
|
-
return zapcore.AddSync(ioutil.Discard)
|
97
|
-
}
|
98
|
-
return zapcore.Lock(zapcore.NewMultiWriteSyncer(writers...))
|
99
|
-
}
|
@@ -1,161 +0,0 @@
|
|
1
|
-
// Copyright (c) 2016 Uber Technologies, Inc.
|
2
|
-
//
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
8
|
-
// furnished to do so, subject to the following conditions:
|
9
|
-
//
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
11
|
-
// all copies or substantial portions of the Software.
|
12
|
-
//
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
-
// THE SOFTWARE.
|
20
|
-
|
21
|
-
package zapcore
|
22
|
-
|
23
|
-
import (
|
24
|
-
"fmt"
|
25
|
-
"sync"
|
26
|
-
|
27
|
-
"go.uber.org/zap/buffer"
|
28
|
-
"go.uber.org/zap/internal/bufferpool"
|
29
|
-
)
|
30
|
-
|
31
|
-
var _sliceEncoderPool = sync.Pool{
|
32
|
-
New: func() interface{} {
|
33
|
-
return &sliceArrayEncoder{elems: make([]interface{}, 0, 2)}
|
34
|
-
},
|
35
|
-
}
|
36
|
-
|
37
|
-
func getSliceEncoder() *sliceArrayEncoder {
|
38
|
-
return _sliceEncoderPool.Get().(*sliceArrayEncoder)
|
39
|
-
}
|
40
|
-
|
41
|
-
func putSliceEncoder(e *sliceArrayEncoder) {
|
42
|
-
e.elems = e.elems[:0]
|
43
|
-
_sliceEncoderPool.Put(e)
|
44
|
-
}
|
45
|
-
|
46
|
-
type consoleEncoder struct {
|
47
|
-
*jsonEncoder
|
48
|
-
}
|
49
|
-
|
50
|
-
// NewConsoleEncoder creates an encoder whose output is designed for human -
|
51
|
-
// rather than machine - consumption. It serializes the core log entry data
|
52
|
-
// (message, level, timestamp, etc.) in a plain-text format and leaves the
|
53
|
-
// structured context as JSON.
|
54
|
-
//
|
55
|
-
// Note that although the console encoder doesn't use the keys specified in the
|
56
|
-
// encoder configuration, it will omit any element whose key is set to the empty
|
57
|
-
// string.
|
58
|
-
func NewConsoleEncoder(cfg EncoderConfig) Encoder {
|
59
|
-
if len(cfg.ConsoleSeparator) == 0 {
|
60
|
-
// Use a default delimiter of '\t' for backwards compatibility
|
61
|
-
cfg.ConsoleSeparator = "\t"
|
62
|
-
}
|
63
|
-
return consoleEncoder{newJSONEncoder(cfg, true)}
|
64
|
-
}
|
65
|
-
|
66
|
-
func (c consoleEncoder) Clone() Encoder {
|
67
|
-
return consoleEncoder{c.jsonEncoder.Clone().(*jsonEncoder)}
|
68
|
-
}
|
69
|
-
|
70
|
-
func (c consoleEncoder) EncodeEntry(ent Entry, fields []Field) (*buffer.Buffer, error) {
|
71
|
-
line := bufferpool.Get()
|
72
|
-
|
73
|
-
// We don't want the entry's metadata to be quoted and escaped (if it's
|
74
|
-
// encoded as strings), which means that we can't use the JSON encoder. The
|
75
|
-
// simplest option is to use the memory encoder and fmt.Fprint.
|
76
|
-
//
|
77
|
-
// If this ever becomes a performance bottleneck, we can implement
|
78
|
-
// ArrayEncoder for our plain-text format.
|
79
|
-
arr := getSliceEncoder()
|
80
|
-
if c.TimeKey != "" && c.EncodeTime != nil {
|
81
|
-
c.EncodeTime(ent.Time, arr)
|
82
|
-
}
|
83
|
-
if c.LevelKey != "" && c.EncodeLevel != nil {
|
84
|
-
c.EncodeLevel(ent.Level, arr)
|
85
|
-
}
|
86
|
-
if ent.LoggerName != "" && c.NameKey != "" {
|
87
|
-
nameEncoder := c.EncodeName
|
88
|
-
|
89
|
-
if nameEncoder == nil {
|
90
|
-
// Fall back to FullNameEncoder for backward compatibility.
|
91
|
-
nameEncoder = FullNameEncoder
|
92
|
-
}
|
93
|
-
|
94
|
-
nameEncoder(ent.LoggerName, arr)
|
95
|
-
}
|
96
|
-
if ent.Caller.Defined {
|
97
|
-
if c.CallerKey != "" && c.EncodeCaller != nil {
|
98
|
-
c.EncodeCaller(ent.Caller, arr)
|
99
|
-
}
|
100
|
-
if c.FunctionKey != "" {
|
101
|
-
arr.AppendString(ent.Caller.Function)
|
102
|
-
}
|
103
|
-
}
|
104
|
-
for i := range arr.elems {
|
105
|
-
if i > 0 {
|
106
|
-
line.AppendString(c.ConsoleSeparator)
|
107
|
-
}
|
108
|
-
fmt.Fprint(line, arr.elems[i])
|
109
|
-
}
|
110
|
-
putSliceEncoder(arr)
|
111
|
-
|
112
|
-
// Add the message itself.
|
113
|
-
if c.MessageKey != "" {
|
114
|
-
c.addSeparatorIfNecessary(line)
|
115
|
-
line.AppendString(ent.Message)
|
116
|
-
}
|
117
|
-
|
118
|
-
// Add any structured context.
|
119
|
-
c.writeContext(line, fields)
|
120
|
-
|
121
|
-
// If there's no stacktrace key, honor that; this allows users to force
|
122
|
-
// single-line output.
|
123
|
-
if ent.Stack != "" && c.StacktraceKey != "" {
|
124
|
-
line.AppendByte('\n')
|
125
|
-
line.AppendString(ent.Stack)
|
126
|
-
}
|
127
|
-
|
128
|
-
if c.LineEnding != "" {
|
129
|
-
line.AppendString(c.LineEnding)
|
130
|
-
} else {
|
131
|
-
line.AppendString(DefaultLineEnding)
|
132
|
-
}
|
133
|
-
return line, nil
|
134
|
-
}
|
135
|
-
|
136
|
-
func (c consoleEncoder) writeContext(line *buffer.Buffer, extra []Field) {
|
137
|
-
context := c.jsonEncoder.Clone().(*jsonEncoder)
|
138
|
-
defer func() {
|
139
|
-
// putJSONEncoder assumes the buffer is still used, but we write out the buffer so
|
140
|
-
// we can free it.
|
141
|
-
context.buf.Free()
|
142
|
-
putJSONEncoder(context)
|
143
|
-
}()
|
144
|
-
|
145
|
-
addFields(context, extra)
|
146
|
-
context.closeOpenNamespaces()
|
147
|
-
if context.buf.Len() == 0 {
|
148
|
-
return
|
149
|
-
}
|
150
|
-
|
151
|
-
c.addSeparatorIfNecessary(line)
|
152
|
-
line.AppendByte('{')
|
153
|
-
line.Write(context.buf.Bytes())
|
154
|
-
line.AppendByte('}')
|
155
|
-
}
|
156
|
-
|
157
|
-
func (c consoleEncoder) addSeparatorIfNecessary(line *buffer.Buffer) {
|
158
|
-
if line.Len() > 0 {
|
159
|
-
line.AppendString(c.ConsoleSeparator)
|
160
|
-
}
|
161
|
-
}
|