angular - ngx-logger içinde birden fazla günlükleme seviyesini yapılandırma


Bir Angular uygulamam var ve yalnızca belirli bir bileşen/sınıf için bir günlükleme seviyesi yapılandırabileceğim ngx-logger framework'ünü eklemeyi düşünüyorum.

Öyleyse diyelim ki bir Angular uygulamasının 5 farklı bileşeni/sınıfı var ve varsayılan Kök seviyesi INFO olarak ayarlanmış. O zaman sadece 1 bileşen/sınıf için DEBUG seviyesini ayarlayabilmek istiyorum. Bu şekilde sadece bu bileşen/sınıf için hata ayıklama mesajlarını alacağım, diğerlerini değil. Bu mümkün mü?

Bu, Java'nın Log4j tarafından sağlanan aynı işlevselliktir; burada belirli paketler için farklı günlük seviyelerini yapılandırmanıza olanak tanır.

Eğer ngx-logger bu özelliği desteklemiyorsa, bilen var mı başka hangi Angular loglama çerçevesi bunu destekliyor?

Cevap #1

Günlük seviyesi, günlük kaydedicinin örneği tarafından paylaşılır, bu yüzden bileşenler/modüller/vb. için belirli günlük seviyelerine sahip olmak istiyorsanız, farklı bir örnek sağlamanız gerekir

Bir bileşen için örnek

import { Component } from "@angular/core";
import { NGXLogger, NgxLoggerLevel } from "src/public_api";

@Component({
  templateUrl: './local-provider.component.html',
  providers: [NGXLogger],
})
export class LocalProviderComponent {

  constructor(public logger: NGXLogger) {
  }

  log(): void {
    this.logger.debug('Test');
  }

  changeLogLevel(): void {
    const config = this.logger.getConfigSnapshot()
    config.level = config.level === NgxLoggerLevel.TRACE ? NgxLoggerLevel.ERROR : NgxLoggerLevel.TRACE;
    this.logger.updateConfig(config);
  }
}

Tam örnek, depoda şurada bulunabilir: https://github.com/dbfannin/ngx-logger/tree/master/projects/not-a-singleton