|
|
@@ -30,13 +30,22 @@ func NewLoggingConn(conn Conn, logger *log.Logger, prefix string) Conn {
|
|
|
if prefix != "" {
|
|
|
prefix = prefix + "."
|
|
|
}
|
|
|
- return &loggingConn{conn, logger, prefix}
|
|
|
+ return &loggingConn{conn, logger, prefix, nil}
|
|
|
+}
|
|
|
+
|
|
|
+//NewLoggingConnFilter returns a logging wrapper around a connection and a filter function.
|
|
|
+func NewLoggingConnFilter(conn Conn, logger *log.Logger, prefix string, skip func(cmdName string) bool) Conn {
|
|
|
+ if prefix != "" {
|
|
|
+ prefix = prefix + "."
|
|
|
+ }
|
|
|
+ return &loggingConn{conn, logger, prefix, skip}
|
|
|
}
|
|
|
|
|
|
type loggingConn struct {
|
|
|
Conn
|
|
|
logger *log.Logger
|
|
|
prefix string
|
|
|
+ skip func(cmdName string) bool
|
|
|
}
|
|
|
|
|
|
func (c *loggingConn) Close() error {
|
|
|
@@ -85,6 +94,9 @@ func (c *loggingConn) printValue(buf *bytes.Buffer, v interface{}) {
|
|
|
}
|
|
|
|
|
|
func (c *loggingConn) print(method, commandName string, args []interface{}, reply interface{}, err error) {
|
|
|
+ if c.skip != nil && c.skip(commandName) {
|
|
|
+ return
|
|
|
+ }
|
|
|
var buf bytes.Buffer
|
|
|
fmt.Fprintf(&buf, "%s%s(", c.prefix, method)
|
|
|
if method != "Receive" {
|