# Global Metrics

path: .metrics.mi.mi_sei
old: 36.77481992082198
new: 93.18695702010253
path: .metrics.mi.mi_original
old: 53.42428936437213
new: 86.19410720196527
path: .metrics.mi.mi_visual_studio
old: 31.242274482088963
new: 50.40591064442413
path: .metrics.cognitive.average
old: null
new: 0.0
path: .metrics.cognitive.sum
old: 3.0
new: 0.0
path: .metrics.loc.cloc
old: 30.0
new: 19.0
path: .metrics.loc.ploc
old: 71.0
new: 16.0
path: .metrics.loc.blank
old: 28.0
new: 4.0
path: .metrics.loc.sloc
old: 129.0
new: 39.0
path: .metrics.nexits.average
old: null
new: 0.0
path: .metrics.nom.functions
old: 0.0
new: 1.0
path: .metrics.nom.total
old: 0.0
new: 1.0
path: .metrics.cyclomatic.sum
old: 14.0
new: 4.0
path: .metrics.cyclomatic.average
old: 2.3333333333333335
new: 1.0
path: .metrics.nargs.average
old: null
new: 0.0
path: .metrics.halstead.N2
old: 83.0
new: 11.0
path: .metrics.halstead.difficulty
old: 10.86904761904762
new: 5.5
path: .metrics.halstead.vocabulary
old: 53.0
new: 16.0
path: .metrics.halstead.n1
old: 11.0
new: 8.0
path: .metrics.halstead.N1
old: 82.0
new: 17.0
path: .metrics.halstead.length
old: 165.0
new: 28.0
path: .metrics.halstead.volume
old: 945.1068750029278
new: 112.0
path: .metrics.halstead.bugs
old: 0.1575168510589568
new: 0.02413232803113718
path: .metrics.halstead.n2
old: 42.0
new: 8.0
path: .metrics.halstead.time
old: 570.689534972006
new: 34.22222222222222
path: .metrics.halstead.estimated_program_length
old: 264.53107956171823
new: 48.0
path: .metrics.halstead.level
old: 0.09200438116100768
new: 0.18181818181818185
path: .metrics.halstead.effort
old: 10272.411629496108
new: 616.0
path: .metrics.halstead.purity_ratio
old: 1.6032186640104136
new: 1.7142857142857142

# Spaces Data

## Minimal test - lines (12, 37)

path: .spaces[0].metrics.cognitive.average
old: null
new: 0.0
path: .spaces[0].metrics.mi.mi_visual_studio
old: 75.10711085881216
new: 54.87638675150316
path: .spaces[0].metrics.mi.mi_sei
old: 109.69085026266684
new: 103.41759085010176
path: .spaces[0].metrics.mi.mi_original
old: 128.43315956856878
new: 93.8386213450704
path: .spaces[0].metrics.nom.total
old: 0.0
new: 1.0
path: .spaces[0].metrics.nom.functions
old: 0.0
new: 1.0
path: .spaces[0].metrics.loc.sloc
old: 7.0
new: 26.0
path: .spaces[0].metrics.loc.cloc
old: 0.0
new: 12.0
path: .spaces[0].metrics.loc.ploc
old: 7.0
new: 12.0
path: .spaces[0].metrics.loc.blank
old: 0.0
new: 2.0
path: .spaces[0].metrics.halstead.effort
old: 12.0
new: 507.64732294101384
path: .spaces[0].metrics.halstead.estimated_program_length
old: 4.754887502163468
new: 39.50977500432694
path: .spaces[0].metrics.halstead.difficulty
old: 1.5
new: 5.333333333333333
path: .spaces[0].metrics.halstead.level
old: 0.6666666666666666
new: 0.1875
path: .spaces[0].metrics.halstead.purity_ratio
old: 1.188721875540867
new: 1.5803910001730777
path: .spaces[0].metrics.halstead.n2
old: 1.0
new: 6.0
path: .spaces[0].metrics.halstead.length
old: 4.0
new: 25.0
path: .spaces[0].metrics.halstead.time
old: 0.6666666666666666
new: 28.202629052278542
path: .spaces[0].metrics.halstead.N1
old: 3.0
new: 17.0
path: .spaces[0].metrics.halstead.N2
old: 1.0
new: 8.0
path: .spaces[0].metrics.halstead.bugs
old: 0.0017471609294725976
new: 0.021212253674190253
path: .spaces[0].metrics.halstead.volume
old: 8.0
new: 95.1838730514401
path: .spaces[0].metrics.halstead.n1
old: 3.0
new: 8.0
path: .spaces[0].metrics.halstead.vocabulary
old: 4.0
new: 14.0
path: .spaces[0].metrics.nargs.average
old: null
new: 0.0
path: .spaces[0].metrics.cyclomatic.sum
old: 1.0
new: 3.0
path: .spaces[0].metrics.nexits.average
old: null
new: 0.0

### Code

    namespace mozilla {

    /**
     * Watches for changes to "logging.*" prefs and then updates the appropriate
     * LogModule's log level. Both the integer and string versions of the LogLevel
     * enum are supported.
     *
     * For example setting the pref "logging.Foo" to "Verbose" will set the
     * LogModule for "Foo" to the LogLevel::Verbose level. Setting "logging.Bar" to
     * 4 would set the LogModule for "Bar" to the LogLevel::Debug level.
     */
    class LogModulePrefWatcher : public nsIObserver {
     public:
      NS_DECL_ISUPPORTS
      NS_DECL_NSIOBSERVER

      /**
       * Starts observing logging pref changes.
       */
      static void RegisterPrefWatcher();

     private:
      LogModulePrefWatcher();
      virtual ~LogModulePrefWatcher() = default;
    };
    }  // namespace mozilla