-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.js
76 lines (64 loc) · 1.79 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
const fs = require("fs");
const moment = require("moment");
let MAIN_DIRECTORY = __dirname
.replace(/\\/g, "/")
.replace("/node_modules/error-printer", "");
let OPTIONS = {
outputFileName: "error_log",
errorMessagePrefix: "Error Message",
errorCodePrefix: "Error Code",
errorDatePrefix: "Error Date",
errorDateFormat: undefined,
};
const setMainDirectory = (directory) => {
MAIN_DIRECTORY = directory;
};
const setOptions = (options) => {
OPTIONS = {
...OPTIONS,
...options,
};
};
const error_log = ({ options, message, code }) => {
const _options = {
...OPTIONS,
...options,
};
// Check whether file exists
const fileExists = fs.existsSync(
MAIN_DIRECTORY + `/${_options.logFileName}`
);
// Create file if it does not exist
if (!fileExists) {
fs.writeFileSync(MAIN_DIRECTORY + `/${_options.logFileName}`, "");
}
// Error message:
let errorData = `${_options.errorMessagePrefix}: ${message}\n`;
if (code) {
errorData += `${_options.errorCodePrefix}: ${code}\n`;
}
if (!_options.errorDateFormat) {
errorData += `${
_options.errorDatePrefix
}: ${new Date().toISOString()}\n`;
} else {
errorData += `${_options.errorDatePrefix}: ${moment(new Date()).format(
_options.errorDateFormat
)}\n`;
}
errorData += `\n`;
// Write new error message to output file.
fs.appendFile(
MAIN_DIRECTORY + `/${_options.logFileName}`,
errorData,
(err) => {
if (err) {
console.error(err);
return err;
}
}
);
};
module.exports = error_log;
module.exports.setMainDirectory = setMainDirectory;
module.exports.setOptions = setOptions;