code: func (l *Logger) WithScope(scopeName string) *Logger {
  	// InfoTraceLogger will collapse successive (ScopeKey, scopeName) pairs into a vector in the order which they appear
  	return l.With(structure.ScopeKey, scopeName)
  }
docs: // Establish or extend the scope of this logger by appending scopeName to the Scope vector.
  // Like With the logging scope is append only but can be used to provide parenthetical scopes by hanging on to the
  // parent scope and using once the scope has been exited. The scope mechanism does is agnostic to the type of scope
  // so can be used to identify certain segments of the call stack, a lexical scope, or any other nested scope.