agones.dev/agones@v1.53.0/pkg/util/logfields/logfields.go (about)

     1  // Copyright 2019 Google LLC All Rights Reserved.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // Package logfields specifies constants for use in logging.
    16  package logfields
    17  
    18  import (
    19  	"github.com/sirupsen/logrus"
    20  )
    21  
    22  const (
    23  	// NilGameServer is the value to show in logging when the GameServer is a nil value
    24  	NilGameServer = "NilGameServer"
    25  )
    26  
    27  // ResourceType identifies the type of a resource for the purpose of putting it in structural logs.
    28  type ResourceType string
    29  
    30  // Identifiers used in logs for identifying Agones objects.
    31  const (
    32  	GameServerKey           ResourceType = "gsKey"
    33  	GameServerSetKey        ResourceType = "gssKey"
    34  	GameServerAllocationKey ResourceType = "gsaKey"
    35  	FleetKey                ResourceType = "fleetKey"
    36  	FleetAutoscalerKey      ResourceType = "fasKey"
    37  )
    38  
    39  // AugmentLogEntry creates derived log entry with a given resource identifier ("namespace/name")
    40  func AugmentLogEntry(base *logrus.Entry, resourceType ResourceType, resourceID string) *logrus.Entry {
    41  	return base.WithField(string(resourceType), resourceID)
    42  }