-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathlibrary.dylan
More file actions
119 lines (106 loc) · 2.36 KB
/
library.dylan
File metadata and controls
119 lines (106 loc) · 2.36 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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
Module: dylan-user
Author: Carl L Gay
Copyright: Copyright (c) 2013 Dylan Hackers. See License.txt for details.
define library logging
use common-dylan;
use big-integers;
use generic-arithmetic;
use io,
import: { format, print, standard-io, streams };
use system,
import: { date, file-system, locators, operating-system, threads };
export
logging,
logging-impl;
end library logging;
define module logging
create
*log*,
<log>,
log-formatter,
log-formatter-setter,
log-level,
log-level-setter,
log-level-applicable?,
log-targets,
log-name,
log-additive?,
log-additive?-setter,
log-enabled?,
log-enabled?-setter,
get-log,
get-root-log,
add-target,
remove-all-targets,
remove-target,
// Levels
<log-level>,
<trace-level>, $trace-level,
<debug-level>, $debug-level,
<info-level>, $info-level,
<warn-level>, $warn-level,
<error-level>, $error-level,
level-name,
// Targets
<log-target>,
<null-log-target>,
<stream-log-target>,
target-stream,
<file-log-target>,
target-pathname,
open-target-stream,
<rolling-file-log-target>,
$stdout-log-target,
$stderr-log-target,
$null-log-target,
// Functions
log-trace,
log-debug,
log-debug-if,
log-info,
log-warning,
log-error,
// Formatters
<log-formatter>,
$default-log-formatter,
// Errors
<logging-error>,
// For building your own logging classes
<abstract-log>,
<placeholder-log>,
log-to-target,
log-message,
pattern-to-stream,
write-message;
end module logging;
define module logging-impl
use common-dylan,
exclude: { format-to-string };
use date;
use file-system;
use format;
use generic-arithmetic,
import: { <integer> => <double-integer>,
+ => plus,
* => mul,
/ => div };
use locators,
import: { <locator>,
<file-locator>,
file-locator,
locator-directory,
locator-name,
merge-locators,
simplify-locator };
use logging;
use operating-system,
import: { current-process-id };
use print;
use standard-io;
use streams;
use threads;
export
// for test suite
elapsed-milliseconds,
reset-logging;
end module logging-impl;