Files
mattermostest/src/common/log.ts
Devin Binnie 9b36c25e4e [MM-52696] Upgrade and clean up Desktop App dev dependencies (#2970)
* Upgrade to ESLint v8

* Upgrade TypeScript, api-types, react-intl

* Remove unnecessary dependencies

* Update to React 17.0.2

* npm audit fixes, remove storybook

* Lock some packages

* Remove nan patch

* Remove some deprecated dependencies

* Fix lint/type/tests

* Merge'd

* Fix bad use of spawn

* Fix notarize

* Fix afterpack, switch to tsc es2020

* Fix api types

* Use @mattermost/eslint-plugin
2024-03-07 15:55:33 -05:00

59 lines
1.9 KiB
TypeScript

// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import type {LevelOption} from 'electron-log';
import log from 'electron-log';
import Util from 'common/utils/util';
export const setLoggingLevel = (level: string) => {
if (log.transports.file.level === level) {
return;
}
log.error('Logger', 'Log level set to:', level);
log.transports.console.level = level as LevelOption;
log.transports.file.level = level as LevelOption;
};
// Start on info by default
setLoggingLevel('info');
export const getLevel = () => log.transports.file.level as string;
export class Logger {
private prefixes: string[];
constructor(...prefixes: string[]) {
this.prefixes = this.shortenPrefixes(...prefixes);
}
withPrefix = (...prefixes: string[]) => {
return {
error: this.prefixed(log.error, ...prefixes),
warn: this.prefixed(log.warn, ...prefixes),
info: this.prefixed(log.info, ...prefixes),
verbose: this.prefixed(log.verbose, ...prefixes),
debug: this.prefixed(log.debug, ...prefixes),
silly: this.prefixed(log.silly, ...prefixes),
log: this.prefixed(log.log, ...prefixes),
};
};
private prefixed = (func: (...args: any[]) => void, ...additionalPrefixes: string[]) => {
return (...args: any[]) => func(...this.prefixes, ...this.shortenPrefixes(...additionalPrefixes), ...args);
};
private shortenPrefixes = (...prefixes: string[]) => {
return prefixes.map((prefix) => `[${Util.shorten(prefix)}]`);
};
error = this.prefixed(log.error);
warn = this.prefixed(log.warn);
info = this.prefixed(log.info);
verbose = this.prefixed(log.verbose);
debug = this.prefixed(log.debug);
silly = this.prefixed(log.silly);
log = this.prefixed(log.log);
}