MCPcopy
hub / github.com/grpc/grpc-go / fillMethodLoggerWithConfigString

Method fillMethodLoggerWithConfigString

internal/binarylog/env_config.go:62–116  ·  view source on GitHub ↗

fillMethodLoggerWithConfigString parses config, creates TruncatingMethodLogger and adds it to the right map in the logger.

(config string)

Source from the content-addressed store, hash-verified

60// fillMethodLoggerWithConfigString parses config, creates TruncatingMethodLogger and adds
61// it to the right map in the logger.
62func (l *logger) fillMethodLoggerWithConfigString(config string) error {
63 // "" is invalid.
64 if config == "" {
65 return errors.New("empty string is not a valid method binary logging config")
66 }
67
68 // "-service/method", blacklist, no * or {} allowed.
69 if config[0] == '-' {
70 s, m, suffix, err := parseMethodConfigAndSuffix(config[1:])
71 if err != nil {
72 return fmt.Errorf("invalid config: %q, %v", config, err)
73 }
74 if m == "*" {
75 return fmt.Errorf("invalid config: %q, %v", config, "* not allowed in blacklist config")
76 }
77 if suffix != "" {
78 return fmt.Errorf("invalid config: %q, %v", config, "header/message limit not allowed in blacklist config")
79 }
80 if err := l.setBlacklist(s + "/" + m); err != nil {
81 return fmt.Errorf("invalid config: %v", err)
82 }
83 return nil
84 }
85
86 // "*{h:256;m:256}"
87 if config[0] == '*' {
88 hdr, msg, err := parseHeaderMessageLengthConfig(config[1:])
89 if err != nil {
90 return fmt.Errorf("invalid config: %q, %v", config, err)
91 }
92 if err := l.setDefaultMethodLogger(&MethodLoggerConfig{Header: hdr, Message: msg}); err != nil {
93 return fmt.Errorf("invalid config: %v", err)
94 }
95 return nil
96 }
97
98 s, m, suffix, err := parseMethodConfigAndSuffix(config)
99 if err != nil {
100 return fmt.Errorf("invalid config: %q, %v", config, err)
101 }
102 hdr, msg, err := parseHeaderMessageLengthConfig(suffix)
103 if err != nil {
104 return fmt.Errorf("invalid header/message length config: %q, %v", suffix, err)
105 }
106 if m == "*" {
107 if err := l.setServiceMethodLogger(s, &MethodLoggerConfig{Header: hdr, Message: msg}); err != nil {
108 return fmt.Errorf("invalid config: %v", err)
109 }
110 } else {
111 if err := l.setMethodMethodLogger(s+"/"+m, &MethodLoggerConfig{Header: hdr, Message: msg}); err != nil {
112 return fmt.Errorf("invalid config: %v", err)
113 }
114 }
115 return nil
116}
117
118const (
119 // TODO: this const is only used by env_config now. But could be useful for

Calls 7

setBlacklistMethod · 0.95
setMethodMethodLoggerMethod · 0.95
ErrorfMethod · 0.65