Log level determined from striped message (#35607) (#35754)

(cherry picked from commit 41fca2e2df)

Co-authored-by: Olof Bourghardt <olof.bourghardt@gmail.com>
This commit is contained in:
Grot (@grafanabot)
2021-06-16 08:47:41 +02:00
committed by GitHub
co-authored by Olof Bourghardt
parent ff07379029
commit 9a2970b5e8
2 changed files with 33 additions and 2 deletions
+30
View File
@@ -871,6 +871,36 @@ describe('logSeriesToLogsModel', () => {
},
]);
});
it('should correctly get the log level if the message has ANSI color', () => {
const logSeries: DataFrame[] = [
toDataFrame({
fields: [
{
name: 'ts',
type: FieldType.time,
values: ['1970-01-01T00:00:01Z'],
},
{
name: 'line',
type: FieldType.string,
values: ['Line with ANSI \u001B[31mwarn\u001B[0m et dolor'],
},
{
name: 'id',
type: FieldType.string,
values: ['0'],
},
],
refId: 'A',
meta: {},
}),
];
const logsModel = dataFrameToLogsModel(logSeries, 0);
expect(logsModel.rows).toHaveLength(1);
expect(logsModel.rows[0].logLevel).toEqual(LogLevel.warn);
});
});
describe('getSeriesProperties()', () => {
+3 -2
View File
@@ -359,6 +359,7 @@ export function logSeriesToLogsModel(logSeries: DataFrame[]): LogsModel | undefi
const hasUnescapedContent = !!message.match(/\\n|\\t|\\r/);
const searchWords = series.meta && series.meta.searchWords ? series.meta.searchWords : [];
const entry = hasAnsi ? ansicolor.strip(message) : message;
let logLevel = LogLevel.unknown;
if (logLevelField && logLevelField.values.get(j)) {
@@ -366,7 +367,7 @@ export function logSeriesToLogsModel(logSeries: DataFrame[]): LogsModel | undefi
} else if (seriesLogLevel) {
logLevel = seriesLogLevel;
} else {
logLevel = getLogLevel(message);
logLevel = getLogLevel(entry);
}
rows.push({
entryFieldIndex: stringField.index,
@@ -382,7 +383,7 @@ export function logSeriesToLogsModel(logSeries: DataFrame[]): LogsModel | undefi
hasAnsi,
hasUnescapedContent,
searchWords,
entry: hasAnsi ? ansicolor.strip(message) : message,
entry,
raw: message,
labels: stringField.labels || {},
uid: idField ? idField.values.get(j) : j.toString(),