Files
smartlog/ts_destination_file/index.ts

27 lines
1021 B
TypeScript
Raw Normal View History

import * as plugins from './plugins.js';
export class SmartlogDestinationFile implements plugins.smartlogInterfaces.ILogDestination {
public fileWriteStream: plugins.fs.WriteStream;
public async handleLog(logPackageArg: plugins.smartlogInterfaces.ILogPackage) {
this.fileWriteStream.write(`${new plugins.smarttime.ExtendedDate(Date.now()).toISOString()}: ${logPackageArg.message} \n`);
}
constructor(filePathArg: string) {
const extendedDate = new plugins.smarttime.ExtendedDate(Date.now());
if (!plugins.path.isAbsolute(filePathArg)) {
throw new Error(`filePath needs to be absolute but is not: "${filePathArg}"`);
}
if (!plugins.fs.existsSync(filePathArg)) {
plugins.fs.mkdirSync(plugins.path.dirname(filePathArg), { recursive: true });
plugins.fs.writeFileSync(filePathArg, `# Smartlogfile. Created at ${extendedDate.toISOString()}\n`);
}
this.fileWriteStream = plugins.fs.createWriteStream(
filePathArg,
{
flags: 'a+',
}
);
}
}