node.js - Er det muligt at skrive noget til en fil ved hjælp af '> >' når filen bruges af en anden applikation på samme tid på Windows?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at omdirigere output fra to applikationer til den samme fil. Faktisk er de logfiler.


På den ene side bruger jeg modulet winston i Node. På den anden side kører jeg samtidig en applikation fra konsollen, og jeg omdirigerer output. Jeg gør det med operatøren >>.


command >> file 2>&1


På Linux fungerer det godt, men det virker ikke på Windows. Jeg får denne fejl:


The process cannot access the file because it is being used by another process.


Er der mulighed for at tvinge adgangen til den anden ansøgning? Det ville være nemmere at debugge min ansøgning, hvis jeg kun havde en fil. Hvis dette ikke er muligt, skal jeg bruge to filer.


BEMÆRK: Jeg vil blot tilføje oplysninger til filen.


Opdater


Sådan bruger jeg loggerfilen med winston-modulet i node-applikationen. Dette er filen logging.js


const loc = require('locations');
const winston = require('winston');

var logger = new (winston.Logger)({
    transports: [
        new (winston.transports.File)({
            formatter: function(options) {
                var date = new Date();
                var str\_date = date.toISOString().replace(/T|Z/g, ' ')
                return str\_date + 'NODE - ' + options.level.toUpperCase() +' '+ (options.message ? options.message : '') +
                    (options.meta && Object.keys(options.meta).length ? '
	'+ JSON.stringify(options.meta) : '' );
            },
            json: false,            // because this bug: https://github.com/winstonjs/winston/issues/545
            filename: loc.debug\_file\_lin, 
        })
    ]
});

module.exports = logger


Og jeg kalder loggeren i resten af ​​js-filer som denne


const logger = require('logging');

Bedste reference