Log level determined from striped message (#35607)

This commit is contained in:
Olof Bourghardt 2021-06-15 15:42:18 +02:00 committed by GitHub
parent e5e93134cf
commit 41fca2e2df
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 2 deletions

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()', () => {

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(),