Add configuration directive for the maximum log files size
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 23 Dec 2022 13:44:43 +0000 (14:44 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 23 Dec 2022 13:44:43 +0000 (14:44 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
src/types/ConfigurationData.ts
src/utils/Configuration.ts
src/utils/Logger.ts

index 58372a3882a5cb064ae7df9c20748c0693ce18e9..8ab9bcfdb95a55f0c6f8f784e63203c7f7b36231 100644 (file)
@@ -73,7 +73,8 @@ export type ConfigurationData = {
   logFormat?: string;
   logLevel?: string;
   logRotate?: boolean;
-  logMaxFiles?: number;
+  logMaxFiles?: number | string;
+  logMaxSize?: number | string;
   logFile?: string;
   logErrorFile?: string;
   logConsole?: boolean;
index f18935313ee37e76b6f4869939d8f8e5fcc4be91..c17cad01545cab8fe77a25a37e3d856fa956a90f 100644 (file)
@@ -246,10 +246,18 @@ export default class Configuration {
       : true;
   }
 
-  static getLogMaxFiles(): number {
-    return Configuration.objectHasOwnProperty(Configuration.getConfig(), 'logMaxFiles')
-      ? Configuration.getConfig().logMaxFiles
-      : 7;
+  static getLogMaxFiles(): number | string | undefined {
+    return (
+      Configuration.objectHasOwnProperty(Configuration.getConfig(), 'logMaxFiles') &&
+      Configuration.getConfig().logMaxFiles
+    );
+  }
+
+  static getLogMaxSize(): number | string | undefined {
+    return (
+      Configuration.objectHasOwnProperty(Configuration.getConfig(), 'logMaxFiles') &&
+      Configuration.getConfig().logMaxSize
+    );
   }
 
   static getLogLevel(): string {
index 95d5347da47f12f708f003e5a43df5d36a16ec19..61e4b0bc24dd1e4887b7fc6c91a69c87d010a7e1 100644 (file)
@@ -9,6 +9,7 @@ import Utils from './Utils';
 let transports: transport[];
 if (Configuration.getLogRotate()) {
   const logMaxFiles = Configuration.getLogMaxFiles();
+  const logMaxSize = Configuration.getLogMaxSize();
   transports = [
     new DailyRotateFile({
       filename: Utils.insertAt(
@@ -17,7 +18,8 @@ if (Configuration.getLogRotate()) {
         Configuration.getLogErrorFile().indexOf('.log')
       ),
       level: 'error',
-      maxFiles: logMaxFiles,
+      ...(logMaxFiles && { maxFiles: logMaxFiles }),
+      ...(logMaxSize && { maxSize: logMaxSize }),
     }),
     new DailyRotateFile({
       filename: Utils.insertAt(
@@ -25,7 +27,8 @@ if (Configuration.getLogRotate()) {
         '-%DATE%',
         Configuration.getLogFile().indexOf('.log')
       ),
-      maxFiles: logMaxFiles,
+      ...(logMaxFiles && { maxFiles: logMaxFiles }),
+      ...(logMaxSize && { maxSize: logMaxSize }),
     }),
   ];
 } else {