|
28 | 28 | // 'trace' | 'debug' | 'info' | 'error' |
29 | 29 | logLevel = getEnvStrOr("PYROSCOPE_LOG_LEVEL", "info") |
30 | 30 |
|
| 31 | + // log format options 'json' | 'text' |
| 32 | + logFormat = getEnvStrOr("PYROSCOPE_LOG_FORMAT", "text") |
| 33 | + |
| 34 | + // log timestamp format (default: time.RFC3339), see https://golang.org/pkg/time/#pkg-constants |
| 35 | + logTsFormat = getEnvStrOr("PYROSCOPE_LOG_TIMESTAMP_FORMAT", time.RFC3339) |
| 36 | + |
| 37 | + logDisableTs = getEnvBool("PYROSCOPE_LOG_TIMESTAMP_DISABLE") |
| 38 | + |
| 39 | + // log field names |
| 40 | + logTsFieldName = getEnvStrOr("PYROSCOPE_LOG_TIMESTAMP_FIELD_NAME", logrus.FieldKeyTime) |
| 41 | + logLevelFieldName = getEnvStrOr("PYROSCOPE_LOG_LEVEL_FIELD_NAME", logrus.FieldKeyLevel) |
| 42 | + logMsgFieldName = getEnvStrOr("PYROSCOPE_LOG_MSG_FIELD_NAME", logrus.FieldKeyMsg) |
| 43 | + logErrorFieldName = getEnvStrOr("PYROSCOPE_LOG_LOGRUS_ERROR_FIELD_NAME", logrus.FieldKeyLogrusError) |
| 44 | + logFuncFieldName = getEnvStrOr("PYROSCOPE_LOG_FUNC_FIELD_NAME", logrus.FieldKeyFunc) |
| 45 | + logFileFieldName = getEnvStrOr("PYROSCOPE_LOG_FILE_FIELD_NAME", logrus.FieldKeyFile) |
| 46 | + |
31 | 47 | // to where relay data to |
32 | 48 | remoteAddress = getEnvStrOr("PYROSCOPE_REMOTE_ADDRESS", "https://ingest.pyroscope.cloud") |
33 | 49 |
|
@@ -106,6 +122,38 @@ func initLogger() *logrus.Entry { |
106 | 122 | } |
107 | 123 |
|
108 | 124 | logrus.SetLevel(lvl) |
| 125 | + |
| 126 | + var f logrus.Formatter |
| 127 | + switch logFormat { |
| 128 | + case "json": |
| 129 | + f = &logrus.JSONFormatter{ |
| 130 | + TimestampFormat: logTsFormat, |
| 131 | + DisableTimestamp: logDisableTs, |
| 132 | + FieldMap: logrus.FieldMap{ |
| 133 | + logrus.FieldKeyTime: logTsFieldName, |
| 134 | + logrus.FieldKeyLevel: logLevelFieldName, |
| 135 | + logrus.FieldKeyMsg: logMsgFieldName, |
| 136 | + logrus.FieldKeyLogrusError: logErrorFieldName, |
| 137 | + logrus.FieldKeyFunc: logFuncFieldName, |
| 138 | + logrus.FieldKeyFile: logFileFieldName, |
| 139 | + }, |
| 140 | + } |
| 141 | + default: |
| 142 | + f = &logrus.TextFormatter{ |
| 143 | + TimestampFormat: logTsFormat, |
| 144 | + DisableTimestamp: logDisableTs, |
| 145 | + FieldMap: logrus.FieldMap{ |
| 146 | + logrus.FieldKeyTime: logTsFieldName, |
| 147 | + logrus.FieldKeyLevel: logLevelFieldName, |
| 148 | + logrus.FieldKeyMsg: logMsgFieldName, |
| 149 | + logrus.FieldKeyLogrusError: logErrorFieldName, |
| 150 | + logrus.FieldKeyFunc: logFuncFieldName, |
| 151 | + logrus.FieldKeyFile: logFileFieldName, |
| 152 | + }, |
| 153 | + } |
| 154 | + } |
| 155 | + logrus.SetFormatter(f) |
| 156 | + |
109 | 157 | return logger |
110 | 158 | } |
111 | 159 |
|
|
0 commit comments