title: Nodejs Winston logger - log output to both console and file
body: <p>I've written a standard express server with Nodejs and Winston logger.
  For some reason, the log output is written both to console and the designated log file.</p>
  
  <p>Every line in the code:</p>
  
  <pre><code>winston.log('info', '**************************************');
  </code></pre>
  
  <p>Is written to both console and log file.</p>
  
  <p>Why is this happening?</p>
  
  <p>He is my code:</p>
  
  <pre><code>var express = require('express');
  var bodyParser = require('body-parser');
  var mysql = require ('mysql');
  var winston = require('winston');
  
  var app = express();
  
  //Init Winston logger, max file size 5MB with 10 file retention
  winston.add(winston.transports.File, { filename: './logs/eclipse_server.log', level: 'info',handleExceptions: true,
              maxsize: 5242880,maxFiles: 10});
  
  winston.log('info', '**************************************');
  winston.log('info', 'Eclipse web server - start up process');
  winston.log('info', 'Express server mode initialized');                 
  winston.log('info', 'Initialize database connection');
  var connection = mysql.createConnection({
      host: '127.0.0.1',
      user: 'root',
      password: '12345678',
      database: 'project_eclipse',
      port: 3306 });
  
      winston.log('info', 'Database connection initialized');
      winston.log('info', 'Database connection attempted');
      connection.connect(function(err){
      if(!err) { 
          winston.log('info', 'Database connection success - connected'); 
      } else {
          winston.log('error', 'Database connection - failed');   
          winston.log('error', err);
      }
      }); 
  
  
  // instruct the app to use the `bodyParser()` middleware for all routes
  
  winston.log('info', 'using bodyParser()');  
  app.use(bodyParser());
  winston.log('info', 'using bodyParser.text()'); 
  app.use(bodyParser.text());
  winston.log('info', 'initialize HTML directory');
  app.use(express.static(__dirname + '/public'));
  winston.log('info', 'initialized HTML directory');
  
  app.post('/', function(request, response){
      winston.log('info', 'In game POST login request recieved');
      var usr = request.body.usr;
      var pass = request.body.pass;
  
      //var client_ip = req.header('x-forwarded-for') || req.connection.remoteAddress;
  
      winston.log('info', 'login request recieved from  '+usr);
  
      connection.query('SELECT * FROM eclipse_users WHERE username=? AND password = md5(?)', [ usr, pass ], function(err, rows, fields) {
  
        if (!err)
        {
          var n_rows = rows.length;
           if(n_rows==1)
           {   
              //user exists
              winston.log('info', 'user exists - response will be send');
              response.json({msg:'user exists'});
              winston.log('info', 'user exists - response sent');
           }
          else
          {
              //user not found
              winston.log('info', 'user not found - response will be send');
              response.json({msg:'user does not exist'});
              winston.log('info', 'user not found - response sent');
          }
        }
       else
          //SQL query error
          {
          winston.log('error', 'Error while performing select query');    
          winston.log('error', err);
          connection.end();}
        });
  });
  
  app.post('/weblogin', function(request, response){
  
      winston.log('info', 'web POST login request recieved');
      var usr = request.body.usr;
      var pass = request.body.password;
  
      //var client_ip = req.header('x-forwarded-for') || req.connection.remoteAddress;
  
      winston.log('info', 'login request recieved from  '+usr);
  
      connection.query('SELECT * FROM eclipse_users WHERE username=? AND password = md5(?)', [ usr, pass ], function(err, rows, fields) {
  
        if (!err)
        {
          var n_rows = rows.length;
           if(n_rows==1)
           {
              //user exists
              winston.log('info', 'user exists - response will be send');
              response.send('1');
              winston.log('info', 'user exists - response sent');
           }
          else{
              //user does not exist
              winston.log('info', 'user not found - response will be send');
              response.send('0');
              winston.log('info', 'user not found - response sent');
          }
      }
        else
          //SQL query error
          {
          winston.log('error', 'Error while performing select query');    
          winston.log('error', err);
          connection.end();}
        });
  });
  
  app.post('/myaction', function(request, response) {
  
    winston.log('info', 'web POST register user request recieved');
      var usr = request.body.username;
      var pass = request.body.pass;
      var uemail = request.body.mail;
  
      winston.log('info', 'preparing sql query');
      var check = connection.query('INSERT INTO eclipse_users (username, password,email) VALUES (?, md5(?),?)', [ usr, pass,uemail ], function(err,result) {
  
      if (!err)
      {
          winston.log('info', 'new user registered');
          response.send('User registered');}
      else
      {
          winston.log('error', 'err');
          response.send('ERROR');
      }
  
      });
  
  });
  
  winston.log('info', 'binding port 80 on IP 172.31.16.218');
  app.listen(80,"172.31.16.218");
  winston.log('info', 'server running at http://172.31.16.218:80');
  </code></pre>