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 @summary:
30 Log to stdout.
31 @author: Ruben Reifenberg
32 """
33
34 from rrlog import Log
35 from rrlog.server import LogServer
36 from rrlog.server.textwriter import TextlineLogWriter
37
38 import sys
39 print_ = sys.stdout.write
40
41 -def createServer(writer=None, tsFormat=None, filters=None, observers=None, writeMsgid=False, format_line=None):
42 """
43 @param tsFormat: timestamp format. See L{rrlog.server.LogServer.__init__}
44 @param filters: default = () See L{rrlog.server.LogServer.__init__}
45 @param observers: default = () See L{rrlog.server.LogServer.__init__}
46 @param format_line: See L{rrlog.server.textwriter.TextlineLogWriter.__init__}
47 """
48 if writer is None:
49 writer = LOGWRITER_CLASS(
50 writeMsgid=writeMsgid,
51 format_line=format_line,
52 )
53
54 return LogServer(
55 writer = writer,
56 filters = filters,
57 observers = observers,
58 tsFormat = tsFormat,
59 )
60
61 -def createLocalLog(
62 writer=None,
63 filters=None,
64 observers=None,
65 traceOffset=0,
66 tsFormat=None,
67 writeMsgid=False,
68 stackMax=1,
69 catsEnable=None,
70 catsDisable=None,
71 seFilesExclude=None,
72 format_line=None,
73 name=None,
74 extractStack=True,
75 ):
76 """
77 @param catsEnable: see L{rrlog.Log.__init__}
78 @param catsDisable: see L{rrlog.Log.__init__}
79 @param seFilesExclude: see L{rrlog.Log.__init__}
80 @param filters: see L{rrlog.server.LogServer.__init__}
81 @param observers: see L{rrlog.server.LogServer.__init__}
82 @param tsFormat: timestamp format. See L{rrlog.server.LogServer.__init__}
83 Here, the default is None (shows no time stamps)
84 @param stackMax: see L{rrlog.Log.__init__}, default: 5 (==log 5 stack levels.)
85 @param format_line: See L{rrlog.server.textwriter.TextlineLogWriter.__init__}
86 @param name: The log can be identified by its optional name attribute (__repr__ method of the log will use it.)
87 @param extractStack: see L{rrlog.Log.__init__}
88 @return: a Log ready to use
89 """
90 if writer is None:
91 writer = LOGWRITER_CLASS(
92 writeMsgid=writeMsgid,
93 format_line=format_line,
94 )
95 return Log(
96 server = createServer(
97 writer=writer,
98 tsFormat=tsFormat,
99 filters=filters,
100 observers=observers,
101 ),
102 traceOffset=traceOffset,
103 stackMax=stackMax,
104 catsEnable=catsEnable,
105 catsDisable=catsDisable,
106 seFilesExclude=seFilesExclude,
107 name=name,
108 extractStack=extractStack,
109 )
110
111
112
113
115 """
116 """
117 - def __init__(self, writeMsgid=False, format_line=None):
120
130 return "%s%s %s %s %s\n"%(
131 pre(),
132 job.msg,
133 self.cfn_cln(job),
134 job.pathStr(1),
135 job.ts,
136 )
137
138
140 """
141 Write without buffering, return when written
142 """
143 print_(self._format_line[0](job))
144
145
146 LOGWRITER_CLASS = PrintLogWriter
147