Export logging in Nodejs between files

Viewed 865

I have two files in nodejs :

  1. index.js
  2. function.js

The index.js is my main file in which i call the functions inside function.js. In function.js i need to use logging, the problem is i didn't figure out how to use it.

function.js

module.exports = {

Exemplfunciton: async () => {
    app.log('#### This is just an exemple im trying to run')
    }

checkCalcul:async(a,b) = > {
log.(`The Val of A : ${a}, the Val of B: ${b}`
return a+b
}
}

index.js

const functionToCall = require('/function.js)
module.exports = app => { 
functionToCall.Exemplfunciton()
functionToCall.checkCalcul(4,5)
}

Will return

app is not defined

tried it without the app in the function.js it returned to me

log not defined.

I only need to use the app.log between the functions ( my main one the index.js and the function.js )

3 Answers

Pass as an argument

module.exports = app => { 
   functionToCall.Exemplfunciton(app) // add here
}

Then consume

module.exports = {
    Exemplfunciton: async (app) => { // add here
        app.log('#### This is just an exemple im trying to run')
    }
}

To log in Node.js, you should use console https://nodejs.org/api/console.html

Example

module.exports = {

ExampleFunction: async () => {
    console.log('#### This is just an example I\'m trying to run')
    }
}
const functionToCall = require('./function.js')
functionToCall.ExampleFunction() // logs #### This is just an example I\'m trying to run

Consider extracting the log functionality out into its own file that can be referenced by function.js, index.js, and anything else in your app. For example:

logger.js

module.exports = {
  log: function() {
    /* aggregate logs and send to your logging service, like TrackJS.com */
  }
}

function.js

var logger = require(“./log.js”);d

module.exports = {
  exampleFunction: function() {
    logger.log(“foo bar”);
  }
};

index.js

var functions = require(“./functions.js”);
var logger = require(“./log.js”);

functions.exampleFunction();
logger.log(“foo”);

You should send the logs off to a service like TrackJS to aggregate, report, and alert you to production problems.

Related