 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- Constants
- Variables
- func AuditLog(ctx context.Context, w *ResponseWriter, r *http.Request, ...)
- func CriticalIf(ctx context.Context, err error, errKind ...interface{})
- func EnableAnonymous()
- func EnableJSON()
- func EnableQuiet()
- func Error(msg string, data ...interface{})
- func Fatal(err error, msg string, data ...interface{})
- func FatalIf(err error, msg string, data ...interface{})
- func GetAuditEntry(ctx context.Context) *audit.Entry
- func GetGlobalDeploymentID() string
- func Info(msg string, data ...interface{})
- func Init(goPath, goRoot string)
- func InitializeLogger(ctx context.Context, transport *http.Transport) error
- func IsAnonymous() bool
- func IsJSON() bool
- func IsQuiet() bool
- func LogAlwaysIf(ctx context.Context, err error, errKind ...interface{})
- func LogIf(ctx context.Context, err error, errKind ...interface{})
- func LogOnceIf(ctx context.Context, err error, id interface{}, errKind ...interface{})
- func NewHTTPTransportWithClientCerts(parentTransport *http.Transport, clientCert, clientKey string) *http.Transport
- func RegisterError(f func(string, error, bool) string)
- func SetAuditEntry(ctx context.Context, audit *audit.Entry) context.Context
- func SetReqInfo(ctx context.Context, req *ReqInfo) context.Context
- func UpdateAuditWebhookTargets(cfg Config) error
- func UpdateSystemTargets(cfg Config) error
- type Config
- type KeyVal
- type Kind
- type Level
- type Logger
- type ObjectVersion
- type ReqInfo
- type ResponseWriter
- type Target
Constants ¶
const ( EnvLoggerJSONEnable = "CONSOLE_LOGGER_JSON_ENABLE" EnvLoggerAnonymousEnable = "CONSOLE_LOGGER_ANONYMOUS_ENABLE" EnvLoggerQuietEnable = "CONSOLE_LOGGER_QUIET_ENABLE" EnvGlobalDeploymentID = "CONSOLE_GLOBAL_DEPLOYMENT_ID" EnvLoggerWebhookEnable = "CONSOLE_LOGGER_WEBHOOK_ENABLE" EnvLoggerWebhookEndpoint = "CONSOLE_LOGGER_WEBHOOK_ENDPOINT" EnvLoggerWebhookAuthToken = "CONSOLE_LOGGER_WEBHOOK_AUTH_TOKEN" EnvLoggerWebhookClientCert = "CONSOLE_LOGGER_WEBHOOK_CLIENT_CERT" EnvLoggerWebhookClientKey = "CONSOLE_LOGGER_WEBHOOK_CLIENT_KEY" EnvLoggerWebhookQueueSize = "CONSOLE_LOGGER_WEBHOOK_QUEUE_SIZE" EnvAuditWebhookEnable = "CONSOLE_AUDIT_WEBHOOK_ENABLE" EnvAuditWebhookEndpoint = "CONSOLE_AUDIT_WEBHOOK_ENDPOINT" EnvAuditWebhookAuthToken = "CONSOLE_AUDIT_WEBHOOK_AUTH_TOKEN" EnvAuditWebhookClientCert = "CONSOLE_AUDIT_WEBHOOK_CLIENT_CERT" EnvAuditWebhookClientKey = "CONSOLE_AUDIT_WEBHOOK_CLIENT_KEY" EnvAuditWebhookQueueSize = "CONSOLE_AUDIT_WEBHOOK_QUEUE_SIZE" )
Audit/Logger constants
const ConsoleLoggerTgt = "console+http"
    ConsoleLoggerTgt is a stringified value to represent console logging
const TimeFormat string = "15:04:05 MST 01/02/2006"
    TimeFormat - logging time format.
Variables ¶
var BodyPlaceHolder = []byte("<BODY>")
    BodyPlaceHolder returns a dummy body placeholder
var Disable = false
    Disable disables all logging, false by default. (used for "go test")
var ErrCritical struct{}
    ErrCritical is the value panic'd whenever CriticalIf is called.
var (
	GlobalContext context.Context
)
    Functions ¶
func AuditLog ¶
func AuditLog(ctx context.Context, w *ResponseWriter, r *http.Request, reqClaims map[string]interface{}, filterKeys ...string)
AuditLog - logs audit logs to all audit targets.
func CriticalIf ¶
CriticalIf logs the provided errors on the console. It fails the current go-routine by causing a `panic(ErrCritical)`.
func EnableAnonymous ¶
func EnableAnonymous()
EnableAnonymous - turns anonymous flag to avoid printing sensitive information.
func Fatal ¶
Fatal prints only fatal errors message with no stack trace it will be called for input validation failures
func GetAuditEntry ¶
GetAuditEntry returns Audit entry if set.
func Init ¶
func Init(goPath, goRoot string)
Init sets the trimStrings to possible GOPATHs and GOROOT directories. Also append github.com/minio/minio This is done to clean up the filename, when stack trace is displayed when an errors happens.
func InitializeLogger ¶
InitializeLogger :
func LogAlwaysIf ¶
LogAlwaysIf prints a detailed errors message during the execution of the server.
func LogOnceIf ¶
LogOnceIf - Logs notification errors - once per errors. id is a unique identifier for related log messages, refer to cmd/notification.go on how it is used.
func NewHTTPTransportWithClientCerts ¶
func NewHTTPTransportWithClientCerts(parentTransport *http.Transport, clientCert, clientKey string) *http.Transport
NewHTTPTransportWithClientCerts returns a new http configuration used while communicating with the cloud backends.
func RegisterError ¶
RegisterError registers the specified rendering function. This latter will be called for a pretty rendering of fatal errors.
func SetAuditEntry ¶
SetAuditEntry sets Audit info in the context.
func SetReqInfo ¶
SetReqInfo sets ReqInfo in the context.
func UpdateAuditWebhookTargets ¶
UpdateAuditWebhookTargets swaps audit webhook targets with newly loaded ones from the cfg
func UpdateSystemTargets ¶
UpdateSystemTargets swaps targets with newly loaded ones from the cfg
Types ¶
type Config ¶
type Config struct {
	HTTP         map[string]http.Config `json:"http"`
	AuditWebhook map[string]http.Config `json:"audit"`
}
    Config console and http logger targets
func LookupConfigForSubSys ¶
LookupConfigForSubSys - lookup logger config, override with ENVs if set, for the given sub-system
type Logger ¶
type Logger interface {
	// contains filtered or unexported methods
}
    Logger interface describes the methods that need to be implemented to satisfy the interface requirements.
type ObjectVersion ¶
ObjectVersion object version key/versionId
type ReqInfo ¶
type ReqInfo struct {
	RemoteHost   string          // Client Host/IP
	Host         string          // Node Host/IP
	UserAgent    string          // User Agent
	DeploymentID string          // x-minio-deployment-id
	RequestID    string          // x-amz-request-id
	SessionID    string          // custom session id
	API          string          // API name - GetObject PutObject NewMultipartUpload etc.
	BucketName   string          `json:",omitempty"` // Bucket name
	ObjectName   string          `json:",omitempty"` // Object name
	VersionID    string          `json:",omitempty"` // corresponding versionID for the object
	Objects      []ObjectVersion `json:",omitempty"` // Only set during MultiObject delete handler.
	AccessKey    string          // Access Key
	sync.RWMutex
	// contains filtered or unexported fields
}
    ReqInfo stores the request info.
func (*ReqInfo) GetTagsMap ¶
GetTagsMap - returns the user defined tags in a map structure
type ResponseWriter ¶
type ResponseWriter struct {
	http.ResponseWriter
	StatusCode int
	// Log body of 4xx or 5xx responses
	LogErrBody bool
	// Log body of all responses
	LogAllBody bool
	TimeToFirstByte time.Duration
	StartTime       time.Time
	// contains filtered or unexported fields
}
    ResponseWriter - is a wrapper to trap the http response status code.
func NewResponseWriter ¶
func NewResponseWriter(w http.ResponseWriter) *ResponseWriter
NewResponseWriter - returns a wrapped response writer to trap http status codes for auditing purposes.
func (*ResponseWriter) Flush ¶
func (lrw *ResponseWriter) Flush()
Flush - Calls the underlying Flush.
func (*ResponseWriter) Size ¶
func (lrw *ResponseWriter) Size() int
Size - reutrns the number of bytes written
func (*ResponseWriter) WriteHeader ¶
func (lrw *ResponseWriter) WriteHeader(code int)
WriteHeader - writes http status code
type Target ¶
type Target interface {
	String() string
	Endpoint() string
	Init() error
	Cancel()
	Send(entry interface{}, errKind string) error
	Type() types.TargetType
}
    Target is the entity that we will receive a single log entry and Send it to the log target e.g. Send the log to a http server
func AuditTargets ¶
func AuditTargets() []Target
AuditTargets returns active audit targets. Returned slice may not be modified in any way.
func SystemTargets ¶
func SystemTargets() []Target
SystemTargets returns active targets. Returned slice may not be modified in any way.