| /* | |
| Copyright 2019 The logr 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 main | |
| import ( | |
| stdlog "log" | |
| "os" | |
| "github.com/go-logr/logr" | |
| "github.com/go-logr/stdr" | |
| ) | |
| type e struct { | |
| str string | |
| } | |
| func (e e) Error() string { | |
| return e.str | |
| } | |
| func helper(log logr.Logger, msg string) { | |
| helper2(log, msg) | |
| } | |
| func helper2(log logr.Logger, msg string) { | |
| log.WithCallDepth(2).Info(msg) | |
| } | |
| func main() { | |
| stdr.SetVerbosity(1) | |
| log := stdr.NewWithOptions(stdlog.New(os.Stderr, "", stdlog.LstdFlags), stdr.Options{LogCaller: stdr.All}) | |
| log = log.WithName("MyName") | |
| example(log.WithValues("module", "example")) | |
| } | |
| // If this were in another package, all it would depend on in logr, not stdr. | |
| func example(log logr.Logger) { | |
| log.Info("hello", "val1", 1, "val2", map[string]int{"k": 1}) | |
| log.V(1).Info("you should see this") | |
| log.V(1).V(1).Info("you should NOT see this") | |
| log.Error(nil, "uh oh", "trouble", true, "reasons", []float64{0.1, 0.11, 3.14}) | |
| log.Error(e{"an error occurred"}, "goodbye", "code", -1) | |
| helper(log, "thru a helper") | |
| } |