Таким чином, Nodejs поставляється із глобальною змінною за замовчуванням, яка називається, '__fileName'
що містить поточний файл, що виконується. Моя порада - передати __fileName службі з будь-якого файлу, щоб пошук файлуName став динамічним
Нижче я використовую рядок fileName, а потім розділяю її на основі path.sep
. Примітка path.sep дозволяє уникнути проблем із сеператорами файлів posix та сепараторами файлів Windows (проблеми з '/' та '\'). Це набагато чистіше. Отримання підрядка та отримання лише останнього відокремленого імені та віднімання його з довжиною актуалу на 3 говорить само за себе.
Ви можете написати таку послугу (зауважте, це в машинописі, але ви можете дуже добре її написати у js)
export class AppLoggingConstants {
constructor(){
}
// Here make sure the fileName param is actually '__fileName'
getDefaultMedata(fileName: string, methodName: string) {
const appName = APP_NAME;
const actualFileName = fileName.substring(fileName.lastIndexOf(path.sep)+1, fileName.length - 3);
//const actualFileName = fileName;
return appName+ ' -- '+actualFileName;
}
}
export const AppLoggingConstantsInstance = new AppLoggingConstants();
path.basename(fpath, path.extname(fpath))