Bug 1856942: part 5) Factor async loading of a sheet out of `Loader::LoadSheet`....
[gecko.git] / services / common / modules-testing / logging.sys.mjs
blob63bd306b670cca9c7bb0832491272c38030316df
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 import { Log } from "resource://gre/modules/Log.sys.mjs";
7 export function initTestLogging(level) {
8   function LogStats() {
9     this.errorsLogged = 0;
10   }
11   LogStats.prototype = {
12     format: function format(message) {
13       if (message.level == Log.Level.Error) {
14         this.errorsLogged += 1;
15       }
17       return (
18         message.time +
19         "\t" +
20         message.loggerName +
21         "\t" +
22         message.levelDesc +
23         "\t" +
24         this.formatText(message) +
25         "\n"
26       );
27     },
28   };
29   Object.setPrototypeOf(LogStats.prototype, new Log.BasicFormatter());
31   let log = Log.repository.rootLogger;
32   let logStats = new LogStats();
33   let appender = new Log.DumpAppender(logStats);
35   if (typeof level == "undefined") {
36     level = "Debug";
37   }
38   getTestLogger().level = Log.Level[level];
39   Log.repository.getLogger("Services").level = Log.Level[level];
41   log.level = Log.Level.Trace;
42   appender.level = Log.Level.Trace;
43   // Overwrite any other appenders (e.g. from previous incarnations)
44   log.ownAppenders = [appender];
45   log.updateAppenders();
47   // SQLite logging is noisy in these tests - we make it quiet by default
48   // (although individual tests are free to bump it later)
49   Log.repository.getLogger("Sqlite").level = Log.Level.Info;
51   return logStats;
54 export function getTestLogger(component) {
55   return Log.repository.getLogger("Testing");