Правильний спосіб підштовхнути до виробництва без консольних і налагоджувальних операцій у node.js?

Я новачок в node.js - чи є спосіб git push, щоб сказати моє виробниче середовище Heroku таким чином, щоб видалити консолі.log заяв? Або це добре, щоб залишити їх?

Який правильний спосіб працювати з локальним кодом, повним налагоджувальних операцій, не втрачаючи заяв, але не підштовхуючи їх до виробництва.

Я розвиваюся локально.

Дякуємо за ваш досвід.

1

7 Відповіді

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

За документами:

Це лише невеликий інструмент, який аналізує ваш JS і замінює будь-який   консолі. * дзвінки з 0. Вона використовує фалафель для проходження AST. Фалафель використовує   esprima для аналізу вашого JS. Нарешті, оптиміст використовується для аргументу cli   синтаксичний аналіз

1
додано

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

За документами:

Це лише невеликий інструмент, який аналізує ваш JS і замінює будь-який   консолі. * дзвінки з 0. Вона використовує фалафель для проходження AST. Фалафель використовує   esprima для аналізу вашого JS. Нарешті, оптиміст використовується для аргументу cli   синтаксичний аналіз

1
додано

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

За документами:

Це лише невеликий інструмент, який аналізує ваш JS і замінює будь-який   консолі. * дзвінки з 0. Вона використовує фалафель для проходження AST. Фалафель використовує   esprima для аналізу вашого JS. Нарешті, оптиміст використовується для аргументу cli   синтаксичний аналіз

1
додано

Створюю файл помічника журналу. Потім я використовую поле debugMode в моїй змінній config.json або середовищі і використовую nconf npm для читання з цього.

Нижче наведено приклад файлу log.coffee

##
# * 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 всюди.

кава

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, джерело

Створюю файл помічника журналу. Потім я використовую поле debugMode в моїй змінній config.json або середовищі і використовую nconf npm для читання з цього.

Нижче наведено приклад файлу log.coffee

##
# * 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 всюди.

кава

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, джерело

Створюю файл помічника журналу. Потім я використовую поле debugMode в моїй змінній config.json або середовищі і використовую nconf npm для читання з цього.

Нижче наведено приклад файлу log.coffee

##
# * 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 всюди.

кава

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

Закінчивши режим -p для режиму -patch , ви зможете інтерактивно переглядати свої виправлення перед їх виконанням. Існують варіанти, щоб кожен розділ розділив його на дрібні шматки, вирішив не фіксувати його, або відредагував кусок, щоб видалити console.log . Після того, як ви скористаєтеся, ви все одно зможете залишити певний код для налагодження, від якого ви хочете позбутися. Можна також використовувати:

git checkout -p

Інтерактивне видалення подібних шляхів.

Відладку реєстрації для збереження

По-перше, використовуйте конфігураційну систему, яка підтримує кілька середовищ, наприклад node-config .

По-друге, створіть власну невелику службу реєстрації, яка переносить службу реєстрації, яка підтримує рівні реєстрації, наприклад bunyan або winston . (Я використовую bunyan ). Основна річ, яку виконуватиме ваш мініатюрний журнал, - обернути службу реєстрації сторонніх виробників і встановити власні налаштування налаштувань.

Налаштуйте локальну розробку за допомогою стандартного рівня реєстрації debug . Налаштуйте своє виробниче середовище за допомогою стандартного рівня журналу info .

Тепер система реєстрації буде генерувати лог-реєстрацію локально, але не у виробництві.

0
додано
dev-ua/node
dev-ua/node
1 122 учасників

Chat for Node.js developers. We love other non-frontend JS environments too!