forked from SolidOS/solid-ui
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlog.js
More file actions
95 lines (80 loc) · 2.52 KB
/
log.js
File metadata and controls
95 lines (80 loc) · 2.52 KB
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// Log of diagnostics -- node module version
var wrapper = function () {
var logger = {}
// /////////////////////// Logging
//
// bitmask levels
var TNONE = 0
var TERROR = 1
var TWARN = 2
var TMESG = 4
var TSUCCESS = 8
var TINFO = 16
var TDEBUG = 32
var TALL = 63
logger.level = TERROR + TWARN + TMESG
logger.ascending = false
logger.msg = function (str, type, typestr) {
if (!type) {
type = TMESG
typestr = 'mesg'
}
if (!(logger.level & type)) return // bitmask
if (typeof document !== 'undefined') {
// Not AJAX environment
var logArea = document.getElementById('status')
if (!logArea) return
// Local version to reduce dependencies
var escapeForXML = function (str) { // don't use library one in case ithasn't been loaded yet
return str.replace(/&/g, '&').replace(/</g, '<')
}
var addendum = document.createElement('span')
addendum.setAttribute('class', typestr)
var now = new Date()
addendum.innerHTML = now.getHours() + ':' + now.getMinutes() + ':' +
now.getSeconds() + ' [' + typestr + '] ' + escapeForXML(str) + '<br/>'
if (!logger.ascending) {
logArea.appendChild(addendum)
} else {
logArea.insertBefore(addendum, logArea.firstChild)
}
} else if (typeof console !== 'undefined') { // node.js
console.log(str)
} else {
var f = dump // || print
if (!f) throw new Error('log: No way to output message: ' + str)
f('Log: ' + str + '\n')
}
} // logger.msg
logger.warn = function (msg) { logger.msg(msg, TWARN, 'warn') }
logger.debug = function (msg) { logger.msg(msg, TDEBUG, 'dbug') }
logger.info = function (msg) { logger.msg(msg, TINFO, 'info') }
logger.error = function (msg) { logger.msg(msg, TERROR, 'eror') }
logger.success = function (msg) { logger.msg(msg, TSUCCESS, 'good') }
if (typeof alert !== 'undefined') {
logger.alert = alert
} else {
logger.alert = logger.warn
}
/** clear the log window **/
logger.clear = function () {
var x = document.getElementById('status')
if (!x) return
x.innerHTML = ''
// emptyNode(x);
} // clearStatus
/** set the logging level **/
logger.setLevel = function (x) {
logger.level = TALL
logger.debug('Log level is now ' + x)
logger.level = x
}
logger.dumpHTML = function () {
var l = logger.level
logger.level = TALL
logger.debug(document.innerHTML)
logger.level = l
}
return logger
}// wrapper
module.exports = wrapper()