tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

logging.sys.mjs (1581B)


      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/. */
      4 
      5 import { Log } from "resource://gre/modules/Log.sys.mjs";
      6 
      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      }
     16 
     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());
     30 
     31  let log = Log.repository.rootLogger;
     32  let logStats = new LogStats();
     33  let appender = new Log.DumpAppender(logStats);
     34 
     35  if (typeof level == "undefined") {
     36    level = "Debug";
     37  }
     38  getTestLogger().level = Log.Level[level];
     39  Log.repository.getLogger("Services").level = Log.Level[level];
     40 
     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();
     46 
     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;
     50 
     51  return logStats;
     52 }
     53 
     54 export function getTestLogger() {
     55  return Log.repository.getLogger("Testing");
     56 }