atom-nuclide
Version:
A unified developer experience for web and mobile development, built as a suite of features on top of Atom to provide hackability and the support of an active community.
147 lines (118 loc) • 5.08 kB
JavaScript
var getServerLogAppenderConfig = _asyncToGenerator(function* () {
// Skip config scribe_cat logger if
// 1) running in test environment
// 2) or running in Atom client
// 3) or running in open sourced version of nuclide
// 4) or the scribe_cat command is missing.
if ((0, (_commonsNodeSystemInfo2 || _commonsNodeSystemInfo()).isRunningInTest)() || (0, (_commonsNodeSystemInfo2 || _commonsNodeSystemInfo()).isRunningInClient)() || !(yield (_commonsNodeFsPromise2 || _commonsNodeFsPromise()).default.exists(scribeAppenderPath)) || !(yield (_commonsNodeScribeProcess2 || _commonsNodeScribeProcess()).default.isScribeCatOnPath())) {
return null;
}
return {
type: 'logLevelFilter',
level: 'DEBUG',
appender: {
type: scribeAppenderPath,
scribeCategory: 'errorlog_arsenal'
}
};
}
/**
* @return The absolute path to the log file for the specified date.
*/
);
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { var callNext = step.bind(null, 'next'); var callThrow = step.bind(null, 'throw'); function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(callNext, callThrow); } } callNext(); }); }; }
/*
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the license found in the LICENSE file in
* the root directory of this source tree.
*/
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _commonsNodeScribeProcess2;
function _commonsNodeScribeProcess() {
return _commonsNodeScribeProcess2 = _interopRequireDefault(require('../../commons-node/ScribeProcess'));
}
var _commonsNodeSystemInfo2;
function _commonsNodeSystemInfo() {
return _commonsNodeSystemInfo2 = require('../../commons-node/system-info');
}
var _commonsNodeFsPromise2;
function _commonsNodeFsPromise() {
return _commonsNodeFsPromise2 = _interopRequireDefault(require('../../commons-node/fsPromise'));
}
var _commonsNodeUserInfo2;
function _commonsNodeUserInfo() {
return _commonsNodeUserInfo2 = _interopRequireDefault(require('../../commons-node/userInfo'));
}
var _os2;
function _os() {
return _os2 = _interopRequireDefault(require('os'));
}
var _commonsNodeNuclideUri2;
function _commonsNodeNuclideUri() {
return _commonsNodeNuclideUri2 = _interopRequireDefault(require('../../commons-node/nuclideUri'));
}
var _log4jsLibDate_format2;
function _log4jsLibDate_format() {
return _log4jsLibDate_format2 = require('log4js/lib/date_format');
}
var LOG_DIRECTORY = (_commonsNodeNuclideUri2 || _commonsNodeNuclideUri()).default.join((_os2 || _os()).default.tmpdir(), '/nuclide-' + (0, (_commonsNodeUserInfo2 || _commonsNodeUserInfo()).default)().username + '-logs');
var LOG_FILE_PATH = (_commonsNodeNuclideUri2 || _commonsNodeNuclideUri()).default.join(LOG_DIRECTORY, 'nuclide.log');
var logDirectoryInitialized = false;
var scribeAppenderPath = (_commonsNodeNuclideUri2 || _commonsNodeNuclideUri()).default.join(__dirname, '../fb/scribeAppender.js');
var LOG4JS_DATE_FORMAT = '-yyyy-MM-dd';
function getPathToLogFileForDate(targetDate) {
return LOG_FILE_PATH + (0, (_log4jsLibDate_format2 || _log4jsLibDate_format()).asString)(LOG4JS_DATE_FORMAT, targetDate);
}
/**
* @return The absolute path to the log file for today.
*/
function getPathToLogFileForToday() {
return getPathToLogFileForDate(new Date());
}
module.exports = {
getDefaultConfig: _asyncToGenerator(function* () {
if (!logDirectoryInitialized) {
yield (_commonsNodeFsPromise2 || _commonsNodeFsPromise()).default.mkdirp(LOG_DIRECTORY);
logDirectoryInitialized = true;
}
var config = {
appenders: [{
type: 'logLevelFilter',
level: 'INFO',
appender: {
type: (_commonsNodeNuclideUri2 || _commonsNodeNuclideUri()).default.join(__dirname, './consoleAppender')
}
}, {
type: 'logLevelFilter',
level: 'ALL',
appender: {
type: (_commonsNodeNuclideUri2 || _commonsNodeNuclideUri()).default.join(__dirname, './nuclideConsoleAppender')
}
}, {
type: 'dateFile',
alwaysIncludePattern: true,
absolute: true,
filename: LOG_FILE_PATH,
pattern: LOG4JS_DATE_FORMAT,
layout: {
type: 'pattern',
// Format log in following pattern:
// yyyy-MM-dd HH:mm:ss.mil $Level (pid:$pid) $categroy - $message.
pattern: '%d{ISO8601} %p (pid:' + process.pid + ') %c - %m'
}
}]
};
var serverLogAppenderConfig = yield getServerLogAppenderConfig();
if (serverLogAppenderConfig) {
config.appenders.push(serverLogAppenderConfig);
}
return config;
}),
getPathToLogFileForToday: getPathToLogFileForToday,
LOG_FILE_PATH: LOG_FILE_PATH,
__test__: {
getPathToLogFileForDate: getPathToLogFileForDate
}
};