@ncoderz/log-m8 1.2.1 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -544,6 +544,7 @@ var LogM8Utils = class _LogM8Utils {
544
544
  var NAME2 = "file";
545
545
  var VERSION2 = "1.0.0";
546
546
  var KIND2 = PluginKind.appender;
547
+ var DEFAULT_FILENAME = "app.log";
547
548
  var SUPPORTED_LEVELS2 = /* @__PURE__ */ new Set([
548
549
  LogLevel.fatal,
549
550
  LogLevel.error,
@@ -565,20 +566,34 @@ var FileAppender = class {
565
566
  __publicField(this, "_formatter");
566
567
  __publicField(this, "_filters", []);
567
568
  __publicField(this, "_stream");
569
+ __publicField(this, "_streamCreationFailed", false);
568
570
  }
569
571
  init(config, formatter, filters) {
570
572
  this._config = config;
571
573
  this._formatter = formatter;
572
574
  this._filters = filters || [];
573
- const flags = this._config.append ? "a" : "w";
574
- this._stream = createWriteStream(this._config.filename, { flags });
575
575
  this.enabled = this._config?.enabled !== false;
576
576
  this.priority = this._config?.priority;
577
+ if (this.enabled) {
578
+ this._createStream();
579
+ }
577
580
  }
578
581
  dispose() {
579
582
  this._stream?.end();
583
+ this._stream = void 0;
580
584
  }
581
585
  write(event) {
586
+ if (this._streamCreationFailed) return;
587
+ if (!this._stream) {
588
+ try {
589
+ this._createStream();
590
+ } catch (err) {
591
+ if (console && console.error) {
592
+ console.error(`LogM8 [FileAppender]: Failed to create file stream: ${err}`);
593
+ }
594
+ this._streamCreationFailed = true;
595
+ }
596
+ }
582
597
  if (!this._stream) return;
583
598
  for (const filter of this._filters) {
584
599
  if (filter.enabled && !filter.filter(event)) {
@@ -607,6 +622,10 @@ var FileAppender = class {
607
622
  _getFilter(name) {
608
623
  return this._filters.find((f) => f.name === name);
609
624
  }
625
+ _createStream() {
626
+ const flags = this._config?.append ? "a" : "w";
627
+ this._stream = createWriteStream(this._config?.filename ?? DEFAULT_FILENAME, { flags });
628
+ }
610
629
  };
611
630
  var FileAppenderFactory = class {
612
631
  constructor() {
@@ -1041,10 +1060,11 @@ var PluginManager = class {
1041
1060
 
1042
1061
  // src/LogM8.ts
1043
1062
  var MAX_LOG_BUFFER_SIZE = 100;
1063
+ var DEFAULT_FORMATTER = "default-formatter";
1044
1064
  var DEFAULT_APPENDERS = [
1045
1065
  {
1046
1066
  name: "console",
1047
- formatter: "default-formatter"
1067
+ formatter: DEFAULT_FORMATTER
1048
1068
  }
1049
1069
  ];
1050
1070
  var LogM8 = class {
@@ -1106,11 +1126,13 @@ var LogM8 = class {
1106
1126
  init(config) {
1107
1127
  config = Object.assign({}, config);
1108
1128
  this._reset();
1109
- this._globalLogLevel = this._logLevelSet.has(config.level) ? config.level : LogLevel.info;
1110
- for (const [name, level] of Object.entries(config.loggers ?? {})) {
1129
+ const levelStr = (config.level ?? "").trim().toLowerCase();
1130
+ this._globalLogLevel = this._logLevelSet.has(levelStr) ? levelStr : LogLevel.info;
1131
+ for (const [name, l] of Object.entries(config.loggers ?? {})) {
1132
+ const levelStr2 = (l ?? "").trim().toLowerCase();
1111
1133
  const logger = this.getLogger(name);
1112
- const l = this._logLevelSet.has(level) ? level : this._globalLogLevel;
1113
- logger.setLevel(l);
1134
+ const level = this._logLevelSet.has(levelStr2) ? levelStr2 : this._globalLogLevel;
1135
+ logger.setLevel(level);
1114
1136
  }
1115
1137
  const appenderConfigs = config.appenders ?? DEFAULT_APPENDERS;
1116
1138
  for (const appenderConfigOrName of appenderConfigs) {