Node.js ішіндегі консольдық және отладқалық мәлімдемелерсіз өндіріске өтудің дұрыс жолы?

Мен node.js торабына жаңадан келдім - менің Heroku өнімділік ортасын console.log мәлімдемелерін алып тастау үшін айтуға итермелеу тәсілі бар ма? Немесе оларды қалдыру жақсы ма?

Өтініштерді жоғалтпай, бірақ оларды өндіріске шығармай-ақ, отладтау туралы мәлімдемелерге толы жергілікті кодын өңдеудің дұрыс жолы қандай?

Мен жергілікті деңгейде дамып жатырмын.

Сіздің тәжірибеңізге рахмет.

1

7 жауаптар

Is this an option? https://npmjs.org/package/remove-console-logs

Құжаттар бойынша:

Бұл сіздің JS-ді талдайтын және кез келген ауыстыратын шағын құрал   консоль. * 0-ге қоңырау шалады. Ол ААСТ бойынша жүру үшін фалафельді пайдаланады. Фалафель пайдаланады   JS-ді талдау үшін esprima. Ақыр соңында, оптимист кассалық дәлел үшін пайдаланылады   талдау әдісі

1
қосылды

Is this an option? https://npmjs.org/package/remove-console-logs

Құжаттар бойынша:

Бұл сіздің JS-ді талдайтын және кез келген ауыстыратын шағын құрал   консоль. * 0-ге қоңырау шалады. Ол ААСТ бойынша жүру үшін фалафельді пайдаланады. Фалафель пайдаланады   JS-ді талдау үшін esprima. Ақыр соңында, оптимист кассалық дәлел үшін пайдаланылады   талдау әдісі

1
қосылды

Is this an option? https://npmjs.org/package/remove-console-logs

Құжаттар бойынша:

Бұл сіздің JS-ді талдайтын және кез келген ауыстыратын шағын құрал   консоль. * 0-ге қоңырау шалады. Ол ААСТ бойынша жүру үшін фалафельді пайдаланады. Фалафель пайдаланады   JS-ді талдау үшін esprima. Ақыр соңында, оптимист кассалық дәлел үшін пайдаланылады   талдау әдісі

1
қосылды

Журналдың көмекші файлын жасаймын. Содан кейін config.json немесе environment айнымалы мәндерінде debugMode өрісін қолданамын және одан әрі оқу үшін nconf npm пайдаланыңыз.

Төменде логосызы файлының үлгісі келтірілген

##
# * console logging for the application

nconf = require('nconf')
nconf.argv().env().file file: "./config.json"

##
# log - log information to the console 
#   params:
#     code - DEBUG, ERROR, WARNING, INFO
#     message - the log message to display
#     data - optional data info
#   returns: nothing
module.exports.log = (code, message, data) ->
  if nconf.get('DEBUG_MODE') == 'true' || nconf.get('DEBUG_MODE') == true
    if data?
      # if the data is an object, stringify it for output
      if typeof data == 'object'
        data = JSON.stringify(data)

      console.log code.toUpperCase() + ': ' + message
      console.log code.toUpperCase() + ': ' + '(continued) ' + data
    else
      console.log code.toUpperCase() + ': ' + message

Содан кейін журналға жазғым келетін кез-келген файлда мен жай ғана осы файлды қосып, console.log-ды барлық жерде пайдаланудан гөрі оған кіріп отырамын.

sample.coffee

logger = require('../log')

module.exports.getEvent = (eventDb) ->
  logger.log 'debug', '/server/adapters/event/getEvent called', eventDb

Тіркеуші маңыздылық кодын, хабарды және қосымша жағдайда терминалда көрсетілетін деректерді береді және егер сіз отладка режимінде болмасаңыз, ол жай ғана ештеңе жасамайды.

1
қосылды
Тамаша заттар. BTW - nconf файлын пайдалануды ұсынады. Мен оны пайдаланған жоқпын, бірақ кейіннен.
қосылды автор metalaureate, көзі
Рахмет сізге маған конфигурациялық жарық көрсеттіңіз.
қосылды автор metalaureate, көзі
Мен қазіргі уақытта менің қосымшаны қабылдауға арналған dotcloud пайдаланамын, бірақ басқа қызметтердің көпшілігі қоршаған ортаны айнымалыларға да мүмкіндік береді. Sp Менің config.json-ді жергілікті түрде іске қосуға болады, nconf одан әрі оқиды, бірақ содан кейін әзірлеу және өндіруге, айнымалы мән ретінде орнатылатын кез-келген айнымалы мәндер config.json файлынан басым болады, және, ақырында, пәрмен жолы арг басымдық. Үміттенемін, бұл сіз сұраған.
қосылды автор WallMobile, көзі

Журналдың көмекші файлын жасаймын. Содан кейін config.json немесе environment айнымалы мәндерінде debugMode өрісін қолданамын және одан әрі оқу үшін nconf npm пайдаланыңыз.

Төменде логосызы файлының үлгісі келтірілген

##
# * console logging for the application

nconf = require('nconf')
nconf.argv().env().file file: "./config.json"

##
# log - log information to the console 
#   params:
#     code - DEBUG, ERROR, WARNING, INFO
#     message - the log message to display
#     data - optional data info
#   returns: nothing
module.exports.log = (code, message, data) ->
  if nconf.get('DEBUG_MODE') == 'true' || nconf.get('DEBUG_MODE') == true
    if data?
      # if the data is an object, stringify it for output
      if typeof data == 'object'
        data = JSON.stringify(data)

      console.log code.toUpperCase() + ': ' + message
      console.log code.toUpperCase() + ': ' + '(continued) ' + data
    else
      console.log code.toUpperCase() + ': ' + message

Содан кейін журналға жазғым келетін кез-келген файлда мен жай ғана осы файлды қосып, console.log-ды барлық жерде пайдаланудан гөрі оған кіріп отырамын.

sample.coffee

logger = require('../log')

module.exports.getEvent = (eventDb) ->
  logger.log 'debug', '/server/adapters/event/getEvent called', eventDb

Тіркеуші маңыздылық кодын, хабарды және қосымша жағдайда терминалда көрсетілетін деректерді береді және егер сіз отладка режимінде болмасаңыз, ол жай ғана ештеңе жасамайды.

1
қосылды
Тамаша заттар. BTW - nconf файлын пайдалануды ұсынады. Мен оны пайдаланған жоқпын, бірақ кейіннен.
қосылды автор metalaureate, көзі
Рахмет сізге маған конфигурациялық жарық көрсеттіңіз.
қосылды автор metalaureate, көзі
Мен қазіргі уақытта менің қосымшаны қабылдауға арналған dotcloud пайдаланамын, бірақ басқа қызметтердің көпшілігі қоршаған ортаны айнымалыларға да мүмкіндік береді. Sp Менің config.json-ді жергілікті түрде іске қосуға болады, nconf одан әрі оқиды, бірақ содан кейін әзірлеу және өндіруге, айнымалы мән ретінде орнатылатын кез-келген айнымалы мәндер config.json файлынан басым болады, және, ақырында, пәрмен жолы арг басымдық. Үміттенемін, бұл сіз сұраған.
қосылды автор WallMobile, көзі

Журналдың көмекші файлын жасаймын. Содан кейін config.json немесе environment айнымалы мәндерінде debugMode өрісін қолданамын және одан әрі оқу үшін nconf npm пайдаланыңыз.

Төменде логосызы файлының үлгісі келтірілген

##
# * console logging for the application

nconf = require('nconf')
nconf.argv().env().file file: "./config.json"

##
# log - log information to the console 
#   params:
#     code - DEBUG, ERROR, WARNING, INFO
#     message - the log message to display
#     data - optional data info
#   returns: nothing
module.exports.log = (code, message, data) ->
  if nconf.get('DEBUG_MODE') == 'true' || nconf.get('DEBUG_MODE') == true
    if data?
      # if the data is an object, stringify it for output
      if typeof data == 'object'
        data = JSON.stringify(data)

      console.log code.toUpperCase() + ': ' + message
      console.log code.toUpperCase() + ': ' + '(continued) ' + data
    else
      console.log code.toUpperCase() + ': ' + message

Содан кейін журналға жазғым келетін кез-келген файлда мен жай ғана осы файлды қосып, console.log-ды барлық жерде пайдаланудан гөрі оған кіріп отырамын.

sample.coffee

logger = require('../log')

module.exports.getEvent = (eventDb) ->
  logger.log 'debug', '/server/adapters/event/getEvent called', eventDb

Тіркеуші маңыздылық кодын, хабарды және қосымша жағдайда терминалда көрсетілетін деректерді береді және егер сіз отладка режимінде болмасаңыз, ол жай ғана ештеңе жасамайды.

1
қосылды
Тамаша заттар. BTW - nconf файлын пайдалануды ұсынады. Мен оны пайдаланған жоқпын, бірақ кейіннен.
қосылды автор metalaureate, көзі
Рахмет сізге маған конфигурациялық жарық көрсеттіңіз.
қосылды автор metalaureate, көзі
Мен қазіргі уақытта менің қосымшаны қабылдауға арналған dotcloud пайдаланамын, бірақ басқа қызметтердің көпшілігі қоршаған ортаны айнымалыларға да мүмкіндік береді. Sp Менің config.json-ді жергілікті түрде іске қосуға болады, nconf одан әрі оқиды, бірақ содан кейін әзірлеу және өндіруге, айнымалы мән ретінде орнатылатын кез-келген айнымалы мәндер config.json файлынан басым болады, және, ақырында, пәрмен жолы арг басымдық. Үміттенемін, бұл сіз сұраған.
қосылды автор WallMobile, көзі

Журнал туралы мәлімдемелер жағдайға байланысты түрлі емдеуге лайық.

Қоқысқа тастау үшін тіркеуді түзету

Кейбір console.log() сөйлемдері шынымен уақытша болып табылады және қалуға қажет емес. Оларды ұстап алу үшін оларды пайдаланыңыз:

git commit -vp

- patch режимі үшін -p аяқталып, сіз оларды орындамас бұрын интерактивті түрде тексеріп шығасыз. Әрбір аңға оны кішкентай аңға бөлуге, оны орындамауды таңдауға немесе console.log жою үшін аңды өңдеуге мүмкіндік бар. Сіз жасағаннан кейін, сізден құтылғыңыз келетін тағы бір ақаулық коды болуы мүмкін. Сіз сондай-ақ пайдалана аласыз:

go кету -p

Сонымен, аңдарды интерактивті түрде алып тастау.

Сақталу үшін тіркеуді түзету

Біріншіден, node-config сияқты бірнеше ортаны қолдайтын конфигурациялық жүйені пайдаланыңыз.

Екіншіден, bunyan немесе winston сияқты тіркеу деңгейлерін қолдайтын тіркеу қызметін орындайтын кішігірім тіркеу қызметін жасаңыз. (Мен bunyan қолданамын). Сіздің кішкентай журнал қызметіңіз жасайтын басты нәрсе - үшінші тараптың журнал қызметіне оралу және жеке конфигурация әдепкі параметрлерді орнату.

Жергілікті дамуыңызды debug әдепкі тіркеу деңгейімен теңшеңіз. Өндіріс ортаңызды info әдепкі журнал деңгейімен теңшеңіз.

Енді тіркеу жүйесі жергілікті күйде деблокировка жасайды, бірақ өндірісте емес.

0
қосылды