Tcl Library Source Code
Check-in [e2d7b04944]
Not logged in
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2018 Conference, Houston/TX, US, Oct 15-19
Send your abstracts to tclconference@googlegroups.com
or submit via the online form by Aug 20.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:json / json <D> Ticket [868b8ebe79] json / json::write <D> Extended the documentation of both packages to refer to the other. No version changes. Regenerated the online documentation.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256:e2d7b049441dd2ea277ce2e303bfe029c2491d3b37c2cbb7487fbc032a3db925
User & Date: aku 2018-05-18 04:42:46
References
2018-05-18
04:43 Closed ticket [868b8ebe79]: documentation link json and json::write plus 6 other changes artifact: 7f68d9b1b0 user: aku
Context
2018-05-18
17:47
oauth / oauth <B> Ticket [8fd2561785] Fixed missing escape-quoting of an opening brace in a quote-quoted regexp pattern in a proc. The outer {...} of the proc body governs. Fixed bogus variable name in oauth::QuoteValues. Added an empty test file with a no-op placeholder test. This will catch at least the file not loading properly. Version bumped to 1.0.2 Leaf check-in: aec286d43d user: aku tags: trunk
17:13
mime / smtp <EF> Ticket [83d674b2dd] New option -tlsimport to support native TLS for smtp. Updated documentation. Version bumped to 1.5 Leaf check-in: 657782a889 user: aku tags: smtp-tlsimport-tkt-83d674b2dd
04:42
json / json <D> Ticket [868b8ebe79] json / json::write <D> Extended the documentation of both packages to refer to the other. No version changes. Regenerated the online documentation. check-in: e2d7b04944 user: aku tags: trunk
04:15
log / log <EF> Ticket [19607f927b] Merged new `logsubst` command to prevent execution of expensive message construction until actually needed. Version bumped to 1.4. Thanks to Harald for idea and implementation. check-in: ea802e332b user: aku tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to embedded/www/tcllib/files/modules/json/json.html.

106
107
108
109
110
111
112
113

114
115
116
117
118
119
120
...
196
197
198
199
200
201
202
203



204
205
206
207
208
209
210
<div id="toc" class="doctools_section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="doctools_toc">
<li class="doctools_section"><a href="#toc">Table Of Contents</a></li>
<li class="doctools_section"><a href="#synopsis">Synopsis</a></li>
<li class="doctools_section"><a href="#section1">Description</a></li>
<li class="doctools_section"><a href="#section2">COMMANDS</a></li>
<li class="doctools_section"><a href="#section3">EXAMPLES</a></li>
<li class="doctools_section"><a href="#section4">Bugs, Ideas, Feedback</a></li>

<li class="doctools_section"><a href="#keywords">Keywords</a></li>
<li class="doctools_section"><a href="#category">Category</a></li>
<li class="doctools_section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="doctools_section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="doctools_synopsis">
................................................................................
        &quot;IDs&quot;: [116, 943, 234, 38793]
    }
}
=&gt;
Image {IDs {116 943 234 38793} Thumbnail {Width 100 Height 125 Url http://www.example.com/image/481989943} Width 800 Height 600 Title {View from 15th Floor}}
</pre>
</div>
<div id="section4" class="doctools_section"><h2><a name="section4">Bugs, Ideas, Feedback</a></h2>



<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>json</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
<p>When proposing code changes, please provide <em>unified diffs</em>,







|
>







 







|
>
>
>







106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
...
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
<div id="toc" class="doctools_section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="doctools_toc">
<li class="doctools_section"><a href="#toc">Table Of Contents</a></li>
<li class="doctools_section"><a href="#synopsis">Synopsis</a></li>
<li class="doctools_section"><a href="#section1">Description</a></li>
<li class="doctools_section"><a href="#section2">COMMANDS</a></li>
<li class="doctools_section"><a href="#section3">EXAMPLES</a></li>
<li class="doctools_section"><a href="#section4">RELATED</a></li>
<li class="doctools_section"><a href="#section5">Bugs, Ideas, Feedback</a></li>
<li class="doctools_section"><a href="#keywords">Keywords</a></li>
<li class="doctools_section"><a href="#category">Category</a></li>
<li class="doctools_section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="doctools_section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="doctools_synopsis">
................................................................................
        &quot;IDs&quot;: [116, 943, 234, 38793]
    }
}
=&gt;
Image {IDs {116 943 234 38793} Thumbnail {Width 100 Height 125 Url http://www.example.com/image/481989943} Width 800 Height 600 Title {View from 15th Floor}}
</pre>
</div>
<div id="section4" class="doctools_section"><h2><a name="section4">RELATED</a></h2>
<p>To write json, instead of parsing it, see package <b class="package"><a href="json_write.html">json::write</a></b>.</p>
</div>
<div id="section5" class="doctools_section"><h2><a name="section5">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>json</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
<p>When proposing code changes, please provide <em>unified diffs</em>,

Changes to embedded/www/tcllib/files/modules/json/json_write.html.

105
106
107
108
109
110
111
112

113
114
115
116
117
118
119
...
169
170
171
172
173
174
175
176



177
178
179
180
181
182
183
</div>
<div id="toc" class="doctools_section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="doctools_toc">
<li class="doctools_section"><a href="#toc">Table Of Contents</a></li>
<li class="doctools_section"><a href="#synopsis">Synopsis</a></li>
<li class="doctools_section"><a href="#section1">Description</a></li>
<li class="doctools_section"><a href="#section2">COMMANDS</a></li>
<li class="doctools_section"><a href="#section3">Bugs, Ideas, Feedback</a></li>

<li class="doctools_section"><a href="#keywords">Keywords</a></li>
<li class="doctools_section"><a href="#category">Category</a></li>
<li class="doctools_section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="doctools_section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="doctools_synopsis">
................................................................................
them as a properly formatted JSON array as its result.</p></dd>
<dt><a name="7"><b class="cmd">::json::write</b> <b class="method">object</b> <i class="arg">key</i> <i class="arg">value</i>...</a></dt>
<dd><p>This method takes a series of key/value arguments, the values already
formatted for JSON, and returns them as a properly formatted JSON
object as its result, with the keys formatted as JSON strings.</p></dd>
</dl>
</div>
<div id="section3" class="doctools_section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>



<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>json</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
<p>When proposing code changes, please provide <em>unified diffs</em>,







|
>







 







|
>
>
>







105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
...
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
</div>
<div id="toc" class="doctools_section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="doctools_toc">
<li class="doctools_section"><a href="#toc">Table Of Contents</a></li>
<li class="doctools_section"><a href="#synopsis">Synopsis</a></li>
<li class="doctools_section"><a href="#section1">Description</a></li>
<li class="doctools_section"><a href="#section2">COMMANDS</a></li>
<li class="doctools_section"><a href="#section3">RELATED</a></li>
<li class="doctools_section"><a href="#section4">Bugs, Ideas, Feedback</a></li>
<li class="doctools_section"><a href="#keywords">Keywords</a></li>
<li class="doctools_section"><a href="#category">Category</a></li>
<li class="doctools_section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="doctools_section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="doctools_synopsis">
................................................................................
them as a properly formatted JSON array as its result.</p></dd>
<dt><a name="7"><b class="cmd">::json::write</b> <b class="method">object</b> <i class="arg">key</i> <i class="arg">value</i>...</a></dt>
<dd><p>This method takes a series of key/value arguments, the values already
formatted for JSON, and returns them as a properly formatted JSON
object as its result, with the keys formatted as JSON strings.</p></dd>
</dl>
</div>
<div id="section3" class="doctools_section"><h2><a name="section3">RELATED</a></h2>
<p>To parse json, instead of writing it, see package <b class="package"><a href="json.html">json</a></b>.</p>
</div>
<div id="section4" class="doctools_section"><h2><a name="section4">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>json</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
<p>When proposing code changes, please provide <em>unified diffs</em>,

Changes to embedded/www/tcllib/files/modules/log/log.html.

95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
...
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
...
138
139
140
141
142
143
144

145
146
147
148
149
150
151
152
153
154
...
288
289
290
291
292
293
294









295
296
297
298
299
300
301
302
303
304
305
306
307
308
| <a href="../../../toc.html">Table Of Contents</a>
| <a href="../../../../index.html">Keyword Index</a>
| <a href="../../../../toc0.html">Categories</a>
| <a href="../../../../toc1.html">Modules</a>
| <a href="../../../../toc2.html">Applications</a>
 ] <hr>
<div class="doctools">
<h1 class="doctools_title">log(n) 1.3 tcllib &quot;Logging facility&quot;</h1>
<div id="name" class="doctools_section"><h2><a name="name">Name</a></h2>
<p>log - Procedures to log messages of libraries and applications.</p>
</div>
<div id="toc" class="doctools_section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="doctools_toc">
<li class="doctools_section"><a href="#toc">Table Of Contents</a></li>
<li class="doctools_section"><a href="#synopsis">Synopsis</a></li>
................................................................................
<li class="doctools_section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="doctools_section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="doctools_synopsis">
<ul class="doctools_requirements">
<li>package require <b class="pkgname">Tcl 8</b></li>
<li>package require <b class="pkgname">log <span class="opt">?1.3?</span></b></li>
</ul>
<ul class="doctools_syntax">
<li><a href="#1"><b class="cmd">::log::levels</b></a></li>
<li><a href="#2"><b class="cmd">::log::lv2longform</b> <i class="arg">level</i></a></li>
<li><a href="#3"><b class="cmd">::log::lv2color</b> <i class="arg">level</i></a></li>
<li><a href="#4"><b class="cmd">::log::lv2priority</b> <i class="arg">level</i></a></li>
<li><a href="#5"><b class="cmd">::log::lv2cmd</b> <i class="arg">level</i></a></li>
................................................................................
<li><a href="#13"><b class="cmd">::log::lvChannel</b> <i class="arg">level</i> <i class="arg">chan</i></a></li>
<li><a href="#14"><b class="cmd">::log::lvChannelForall</b> <i class="arg">chan</i></a></li>
<li><a href="#15"><b class="cmd">::log::lvColor</b> <i class="arg">level</i> <i class="arg">color</i></a></li>
<li><a href="#16"><b class="cmd">::log::lvColorForall</b> <i class="arg">color</i></a></li>
<li><a href="#17"><b class="cmd">::log::log</b> <i class="arg">level</i> <i class="arg">text</i></a></li>
<li><a href="#18"><b class="cmd">::log::logarray</b> <i class="arg">level</i> <i class="arg">arrayvar</i> <span class="opt">?<i class="arg">pattern</i>?</span></a></li>
<li><a href="#19"><b class="cmd">::log::loghex</b> <i class="arg">level</i> <i class="arg">text</i> <i class="arg">data</i></a></li>

<li><a href="#20"><b class="cmd">::log::logMsg</b> <i class="arg">text</i></a></li>
<li><a href="#21"><b class="cmd">::log::logError</b> <i class="arg">text</i></a></li>
<li><a href="#22"><b class="cmd">::log::Puts</b> <i class="arg">level</i> <i class="arg">text</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="doctools_section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">log</b> package provides commands that allow libraries and
applications to selectively log information about their internal
operation and state.</p>
................................................................................
variable <i class="arg">arrayvar</i>, possibly restricted to entries matching the
<i class="arg">pattern</i>. The pattern defaults to <b class="const">*</b> (i.e. all entries) if
none was specified.</p></dd>
<dt><a name="19"><b class="cmd">::log::loghex</b> <i class="arg">level</i> <i class="arg">text</i> <i class="arg">data</i></a></dt>
<dd><p>Like <b class="cmd">::log::log</b>, but assumes that <i class="arg">data</i> contains binary
data. It converts this into a mixed hex/ascii representation before
writing them to the log.</p></dd>









<dt><a name="20"><b class="cmd">::log::logMsg</b> <i class="arg">text</i></a></dt>
<dd><p>Convenience wrapper around <b class="cmd">::log::log</b>.
Equivalent to <b class="cmd">::log::log info text</b>.</p></dd>
<dt><a name="21"><b class="cmd">::log::logError</b> <i class="arg">text</i></a></dt>
<dd><p>Convenience wrapper around <b class="cmd">::log::log</b>.
Equivalent to <b class="cmd">::log::log error text</b>.</p></dd>
<dt><a name="22"><b class="cmd">::log::Puts</b> <i class="arg">level</i> <i class="arg">text</i></a></dt>
<dd><p>The standard log command, it writes messages and their levels to
user-specified channels. Assumes that the suppression checks were done
by the caller. Expects full level names, abbreviations are
<em>not allowed</em>.</p></dd>
</dl>
</div>
<div id="section3" class="doctools_section"><h2><a name="section3">LEVELS</a></h2>







|







 







|







 







>
|
|
|







 







>
>
>
>
>
>
>
>
>
|


|


|







95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
...
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
...
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
...
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
| <a href="../../../toc.html">Table Of Contents</a>
| <a href="../../../../index.html">Keyword Index</a>
| <a href="../../../../toc0.html">Categories</a>
| <a href="../../../../toc1.html">Modules</a>
| <a href="../../../../toc2.html">Applications</a>
 ] <hr>
<div class="doctools">
<h1 class="doctools_title">log(n) 1.4 tcllib &quot;Logging facility&quot;</h1>
<div id="name" class="doctools_section"><h2><a name="name">Name</a></h2>
<p>log - Procedures to log messages of libraries and applications.</p>
</div>
<div id="toc" class="doctools_section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="doctools_toc">
<li class="doctools_section"><a href="#toc">Table Of Contents</a></li>
<li class="doctools_section"><a href="#synopsis">Synopsis</a></li>
................................................................................
<li class="doctools_section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="doctools_section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="doctools_synopsis">
<ul class="doctools_requirements">
<li>package require <b class="pkgname">Tcl 8</b></li>
<li>package require <b class="pkgname">log <span class="opt">?1.4?</span></b></li>
</ul>
<ul class="doctools_syntax">
<li><a href="#1"><b class="cmd">::log::levels</b></a></li>
<li><a href="#2"><b class="cmd">::log::lv2longform</b> <i class="arg">level</i></a></li>
<li><a href="#3"><b class="cmd">::log::lv2color</b> <i class="arg">level</i></a></li>
<li><a href="#4"><b class="cmd">::log::lv2priority</b> <i class="arg">level</i></a></li>
<li><a href="#5"><b class="cmd">::log::lv2cmd</b> <i class="arg">level</i></a></li>
................................................................................
<li><a href="#13"><b class="cmd">::log::lvChannel</b> <i class="arg">level</i> <i class="arg">chan</i></a></li>
<li><a href="#14"><b class="cmd">::log::lvChannelForall</b> <i class="arg">chan</i></a></li>
<li><a href="#15"><b class="cmd">::log::lvColor</b> <i class="arg">level</i> <i class="arg">color</i></a></li>
<li><a href="#16"><b class="cmd">::log::lvColorForall</b> <i class="arg">color</i></a></li>
<li><a href="#17"><b class="cmd">::log::log</b> <i class="arg">level</i> <i class="arg">text</i></a></li>
<li><a href="#18"><b class="cmd">::log::logarray</b> <i class="arg">level</i> <i class="arg">arrayvar</i> <span class="opt">?<i class="arg">pattern</i>?</span></a></li>
<li><a href="#19"><b class="cmd">::log::loghex</b> <i class="arg">level</i> <i class="arg">text</i> <i class="arg">data</i></a></li>
<li><a href="#20"><b class="cmd">::log::logsubst</b> <i class="arg">level</i> <i class="arg">msg</i></a></li>
<li><a href="#21"><b class="cmd">::log::logMsg</b> <i class="arg">text</i></a></li>
<li><a href="#22"><b class="cmd">::log::logError</b> <i class="arg">text</i></a></li>
<li><a href="#23"><b class="cmd">::log::Puts</b> <i class="arg">level</i> <i class="arg">text</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="doctools_section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">log</b> package provides commands that allow libraries and
applications to selectively log information about their internal
operation and state.</p>
................................................................................
variable <i class="arg">arrayvar</i>, possibly restricted to entries matching the
<i class="arg">pattern</i>. The pattern defaults to <b class="const">*</b> (i.e. all entries) if
none was specified.</p></dd>
<dt><a name="19"><b class="cmd">::log::loghex</b> <i class="arg">level</i> <i class="arg">text</i> <i class="arg">data</i></a></dt>
<dd><p>Like <b class="cmd">::log::log</b>, but assumes that <i class="arg">data</i> contains binary
data. It converts this into a mixed hex/ascii representation before
writing them to the log.</p></dd>
<dt><a name="20"><b class="cmd">::log::logsubst</b> <i class="arg">level</i> <i class="arg">msg</i></a></dt>
<dd><p>Like <b class="cmd">::log::log</b>, but <i class="arg">msg</i> may contain substitutions and variable references, which are evaluated in the caller scope first.
The purpose of this command is to avoid overhead in the non-logging case, if the log message building is expensive.
Any substitution errors raise an error in the command execution.
The following example shows an xml text representation, which is only generated in debug mode:</p>
<pre class="doctools_example">
    log::logsubst debug {XML of node $node is '[$node toXml]'}
</pre>
</dd>
<dt><a name="21"><b class="cmd">::log::logMsg</b> <i class="arg">text</i></a></dt>
<dd><p>Convenience wrapper around <b class="cmd">::log::log</b>.
Equivalent to <b class="cmd">::log::log info text</b>.</p></dd>
<dt><a name="22"><b class="cmd">::log::logError</b> <i class="arg">text</i></a></dt>
<dd><p>Convenience wrapper around <b class="cmd">::log::log</b>.
Equivalent to <b class="cmd">::log::log error text</b>.</p></dd>
<dt><a name="23"><b class="cmd">::log::Puts</b> <i class="arg">level</i> <i class="arg">text</i></a></dt>
<dd><p>The standard log command, it writes messages and their levels to
user-specified channels. Assumes that the suppression checks were done
by the caller. Expects full level names, abbreviations are
<em>not allowed</em>.</p></dd>
</dl>
</div>
<div id="section3" class="doctools_section"><h2><a name="section3">LEVELS</a></h2>

Changes to idoc/man/files/modules/json/json.n.

364
365
366
367
368
369
370


371
372
373
374
375
376
377
        "IDs": [116, 943, 234, 38793]
    }
}
=>
Image {IDs {116 943 234 38793} Thumbnail {Width 100 Height 125 Url http://www\&.example\&.com/image/481989943} Width 800 Height 600 Title {View from 15th Floor}}

.CE


.SH "BUGS, IDEAS, FEEDBACK"
This document, and the package it describes, will undoubtedly contain
bugs and other problems\&.
Please report such in the category \fIjson\fR of the
\fITcllib Trackers\fR [http://core\&.tcl\&.tk/tcllib/reportlist]\&.
Please also report any ideas for enhancements you may have for either
package and/or documentation\&.







>
>







364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
        "IDs": [116, 943, 234, 38793]
    }
}
=>
Image {IDs {116 943 234 38793} Thumbnail {Width 100 Height 125 Url http://www\&.example\&.com/image/481989943} Width 800 Height 600 Title {View from 15th Floor}}

.CE
.SH RELATED
To write json, instead of parsing it, see package \fBjson::write\fR\&.
.SH "BUGS, IDEAS, FEEDBACK"
This document, and the package it describes, will undoubtedly contain
bugs and other problems\&.
Please report such in the category \fIjson\fR of the
\fITcllib Trackers\fR [http://core\&.tcl\&.tk/tcllib/reportlist]\&.
Please also report any ideas for enhancements you may have for either
package and/or documentation\&.

Changes to idoc/man/files/modules/json/json_write.n.

340
341
342
343
344
345
346


347
348
349
350
351
352
353
.TP
\fB::json::write\fR \fBobject\fR \fIkey\fR \fIvalue\fR\&.\&.\&.
This method takes a series of key/value arguments, the values already
formatted for JSON, and returns them as a properly formatted JSON
object as its result, with the keys formatted as JSON strings\&.
.PP
.PP


.SH "BUGS, IDEAS, FEEDBACK"
This document, and the package it describes, will undoubtedly contain
bugs and other problems\&.
Please report such in the category \fIjson\fR of the
\fITcllib Trackers\fR [http://core\&.tcl\&.tk/tcllib/reportlist]\&.
Please also report any ideas for enhancements you may have for either
package and/or documentation\&.







>
>







340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
.TP
\fB::json::write\fR \fBobject\fR \fIkey\fR \fIvalue\fR\&.\&.\&.
This method takes a series of key/value arguments, the values already
formatted for JSON, and returns them as a properly formatted JSON
object as its result, with the keys formatted as JSON strings\&.
.PP
.PP
.SH RELATED
To parse json, instead of writing it, see package \fBjson\fR\&.
.SH "BUGS, IDEAS, FEEDBACK"
This document, and the package it describes, will undoubtedly contain
bugs and other problems\&.
Please report such in the category \fIjson\fR of the
\fITcllib Trackers\fR [http://core\&.tcl\&.tk/tcllib/reportlist]\&.
Please also report any ideas for enhancements you may have for either
package and/or documentation\&.

Changes to idoc/man/files/modules/log/log.n.

1
2
3
4
5
6
7
8
9
10
11
12
...
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
...
311
312
313
314
315
316
317


318
319
320
321
322
323
324
...
503
504
505
506
507
508
509












510
511
512
513
514
515
516
'\"
'\" Generated from file 'log\&.man' by tcllib/doctools with format 'nroff'
'\" Copyright (c) 2001-2009 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net>
'\"
.TH "log" n 1\&.3 tcllib "Logging facility"
.\" The -*- nroff -*- definitions below are for supplemental macros used
.\" in Tcl/Tk manual entries.
.\"
.\" .AP type name in/out ?indent?
.\"	Start paragraph describing an argument to a library procedure.
.\"	type is type of argument (int, etc.), in/out is either "in", "out",
.\"	or "in/out" to describe whether procedure reads or modifies arg,
................................................................................
..
.BS
.SH NAME
log \- Procedures to log messages of libraries and applications\&.
.SH SYNOPSIS
package require \fBTcl  8\fR
.sp
package require \fBlog  ?1\&.3?\fR
.sp
\fB::log::levels\fR
.sp
\fB::log::lv2longform\fR \fIlevel\fR
.sp
\fB::log::lv2color\fR \fIlevel\fR
.sp
................................................................................
\fB::log::lvColorForall\fR \fIcolor\fR
.sp
\fB::log::log\fR \fIlevel\fR \fItext\fR
.sp
\fB::log::logarray\fR \fIlevel\fR \fIarrayvar\fR ?\fIpattern\fR?
.sp
\fB::log::loghex\fR \fIlevel\fR \fItext\fR \fIdata\fR


.sp
\fB::log::logMsg\fR \fItext\fR
.sp
\fB::log::logError\fR \fItext\fR
.sp
\fB::log::Puts\fR \fIlevel\fR \fItext\fR
.sp
................................................................................
\fIpattern\fR\&. The pattern defaults to \fB*\fR (i\&.e\&. all entries) if
none was specified\&.
.TP
\fB::log::loghex\fR \fIlevel\fR \fItext\fR \fIdata\fR
Like \fB::log::log\fR, but assumes that \fIdata\fR contains binary
data\&. It converts this into a mixed hex/ascii representation before
writing them to the log\&.












.TP
\fB::log::logMsg\fR \fItext\fR
Convenience wrapper around \fB::log::log\fR\&.
Equivalent to \fB::log::log info text\fR\&.
.TP
\fB::log::logError\fR \fItext\fR
Convenience wrapper around \fB::log::log\fR\&.




|







 







|







 







>
>







 







>
>
>
>
>
>
>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
...
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
...
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
...
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
'\"
'\" Generated from file 'log\&.man' by tcllib/doctools with format 'nroff'
'\" Copyright (c) 2001-2009 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net>
'\"
.TH "log" n 1\&.4 tcllib "Logging facility"
.\" The -*- nroff -*- definitions below are for supplemental macros used
.\" in Tcl/Tk manual entries.
.\"
.\" .AP type name in/out ?indent?
.\"	Start paragraph describing an argument to a library procedure.
.\"	type is type of argument (int, etc.), in/out is either "in", "out",
.\"	or "in/out" to describe whether procedure reads or modifies arg,
................................................................................
..
.BS
.SH NAME
log \- Procedures to log messages of libraries and applications\&.
.SH SYNOPSIS
package require \fBTcl  8\fR
.sp
package require \fBlog  ?1\&.4?\fR
.sp
\fB::log::levels\fR
.sp
\fB::log::lv2longform\fR \fIlevel\fR
.sp
\fB::log::lv2color\fR \fIlevel\fR
.sp
................................................................................
\fB::log::lvColorForall\fR \fIcolor\fR
.sp
\fB::log::log\fR \fIlevel\fR \fItext\fR
.sp
\fB::log::logarray\fR \fIlevel\fR \fIarrayvar\fR ?\fIpattern\fR?
.sp
\fB::log::loghex\fR \fIlevel\fR \fItext\fR \fIdata\fR
.sp
\fB::log::logsubst\fR \fIlevel\fR \fImsg\fR
.sp
\fB::log::logMsg\fR \fItext\fR
.sp
\fB::log::logError\fR \fItext\fR
.sp
\fB::log::Puts\fR \fIlevel\fR \fItext\fR
.sp
................................................................................
\fIpattern\fR\&. The pattern defaults to \fB*\fR (i\&.e\&. all entries) if
none was specified\&.
.TP
\fB::log::loghex\fR \fIlevel\fR \fItext\fR \fIdata\fR
Like \fB::log::log\fR, but assumes that \fIdata\fR contains binary
data\&. It converts this into a mixed hex/ascii representation before
writing them to the log\&.
.TP
\fB::log::logsubst\fR \fIlevel\fR \fImsg\fR
Like \fB::log::log\fR, but \fImsg\fR may contain substitutions and variable references, which are evaluated in the caller scope first\&.
The purpose of this command is to avoid overhead in the non-logging case, if the log message building is expensive\&.
Any substitution errors raise an error in the command execution\&.
The following example shows an xml text representation, which is only generated in debug mode:
.CS


    log::logsubst debug {XML of node $node is '[$node toXml]'}

.CE
.TP
\fB::log::logMsg\fR \fItext\fR
Convenience wrapper around \fB::log::log\fR\&.
Equivalent to \fB::log::log info text\fR\&.
.TP
\fB::log::logError\fR \fItext\fR
Convenience wrapper around \fB::log::log\fR\&.

Changes to idoc/www/tcllib/files/modules/json/json.html.

115
116
117
118
119
120
121
122

123
124
125
126
127
128
129
...
205
206
207
208
209
210
211
212



213
214
215
216
217
218
219
<div id="toc" class="doctools_section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="doctools_toc">
<li class="doctools_section"><a href="#toc">Table Of Contents</a></li>
<li class="doctools_section"><a href="#synopsis">Synopsis</a></li>
<li class="doctools_section"><a href="#section1">Description</a></li>
<li class="doctools_section"><a href="#section2">COMMANDS</a></li>
<li class="doctools_section"><a href="#section3">EXAMPLES</a></li>
<li class="doctools_section"><a href="#section4">Bugs, Ideas, Feedback</a></li>

<li class="doctools_section"><a href="#keywords">Keywords</a></li>
<li class="doctools_section"><a href="#category">Category</a></li>
<li class="doctools_section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="doctools_section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="doctools_synopsis">
................................................................................
        &quot;IDs&quot;: [116, 943, 234, 38793]
    }
}
=&gt;
Image {IDs {116 943 234 38793} Thumbnail {Width 100 Height 125 Url http://www.example.com/image/481989943} Width 800 Height 600 Title {View from 15th Floor}}
</pre>
</div>
<div id="section4" class="doctools_section"><h2><a name="section4">Bugs, Ideas, Feedback</a></h2>



<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>json</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
<p>When proposing code changes, please provide <em>unified diffs</em>,







|
>







 







|
>
>
>







115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
...
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
<div id="toc" class="doctools_section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="doctools_toc">
<li class="doctools_section"><a href="#toc">Table Of Contents</a></li>
<li class="doctools_section"><a href="#synopsis">Synopsis</a></li>
<li class="doctools_section"><a href="#section1">Description</a></li>
<li class="doctools_section"><a href="#section2">COMMANDS</a></li>
<li class="doctools_section"><a href="#section3">EXAMPLES</a></li>
<li class="doctools_section"><a href="#section4">RELATED</a></li>
<li class="doctools_section"><a href="#section5">Bugs, Ideas, Feedback</a></li>
<li class="doctools_section"><a href="#keywords">Keywords</a></li>
<li class="doctools_section"><a href="#category">Category</a></li>
<li class="doctools_section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="doctools_section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="doctools_synopsis">
................................................................................
        &quot;IDs&quot;: [116, 943, 234, 38793]
    }
}
=&gt;
Image {IDs {116 943 234 38793} Thumbnail {Width 100 Height 125 Url http://www.example.com/image/481989943} Width 800 Height 600 Title {View from 15th Floor}}
</pre>
</div>
<div id="section4" class="doctools_section"><h2><a name="section4">RELATED</a></h2>
<p>To write json, instead of parsing it, see package <b class="package"><a href="json_write.html">json::write</a></b>.</p>
</div>
<div id="section5" class="doctools_section"><h2><a name="section5">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>json</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
<p>When proposing code changes, please provide <em>unified diffs</em>,

Changes to idoc/www/tcllib/files/modules/json/json_write.html.

114
115
116
117
118
119
120
121

122
123
124
125
126
127
128
...
178
179
180
181
182
183
184
185



186
187
188
189
190
191
192
</div>
<div id="toc" class="doctools_section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="doctools_toc">
<li class="doctools_section"><a href="#toc">Table Of Contents</a></li>
<li class="doctools_section"><a href="#synopsis">Synopsis</a></li>
<li class="doctools_section"><a href="#section1">Description</a></li>
<li class="doctools_section"><a href="#section2">COMMANDS</a></li>
<li class="doctools_section"><a href="#section3">Bugs, Ideas, Feedback</a></li>

<li class="doctools_section"><a href="#keywords">Keywords</a></li>
<li class="doctools_section"><a href="#category">Category</a></li>
<li class="doctools_section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="doctools_section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="doctools_synopsis">
................................................................................
them as a properly formatted JSON array as its result.</p></dd>
<dt><a name="7"><b class="cmd">::json::write</b> <b class="method">object</b> <i class="arg">key</i> <i class="arg">value</i>...</a></dt>
<dd><p>This method takes a series of key/value arguments, the values already
formatted for JSON, and returns them as a properly formatted JSON
object as its result, with the keys formatted as JSON strings.</p></dd>
</dl>
</div>
<div id="section3" class="doctools_section"><h2><a name="section3">Bugs, Ideas, Feedback</a></h2>



<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>json</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
<p>When proposing code changes, please provide <em>unified diffs</em>,







|
>







 







|
>
>
>







114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
...
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
</div>
<div id="toc" class="doctools_section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="doctools_toc">
<li class="doctools_section"><a href="#toc">Table Of Contents</a></li>
<li class="doctools_section"><a href="#synopsis">Synopsis</a></li>
<li class="doctools_section"><a href="#section1">Description</a></li>
<li class="doctools_section"><a href="#section2">COMMANDS</a></li>
<li class="doctools_section"><a href="#section3">RELATED</a></li>
<li class="doctools_section"><a href="#section4">Bugs, Ideas, Feedback</a></li>
<li class="doctools_section"><a href="#keywords">Keywords</a></li>
<li class="doctools_section"><a href="#category">Category</a></li>
<li class="doctools_section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="doctools_section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="doctools_synopsis">
................................................................................
them as a properly formatted JSON array as its result.</p></dd>
<dt><a name="7"><b class="cmd">::json::write</b> <b class="method">object</b> <i class="arg">key</i> <i class="arg">value</i>...</a></dt>
<dd><p>This method takes a series of key/value arguments, the values already
formatted for JSON, and returns them as a properly formatted JSON
object as its result, with the keys formatted as JSON strings.</p></dd>
</dl>
</div>
<div id="section3" class="doctools_section"><h2><a name="section3">RELATED</a></h2>
<p>To parse json, instead of writing it, see package <b class="package"><a href="json.html">json</a></b>.</p>
</div>
<div id="section4" class="doctools_section"><h2><a name="section4">Bugs, Ideas, Feedback</a></h2>
<p>This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category <em>json</em> of the
<a href="http://core.tcl.tk/tcllib/reportlist">Tcllib Trackers</a>.
Please also report any ideas for enhancements you may have for either
package and/or documentation.</p>
<p>When proposing code changes, please provide <em>unified diffs</em>,

Changes to idoc/www/tcllib/files/modules/log/log.html.

104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
...
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
...
147
148
149
150
151
152
153

154
155
156
157
158
159
160
161
162
163
...
297
298
299
300
301
302
303









304
305
306
307
308
309
310
311
312
313
314
315
316
317
| <a href="../../../toc.html">Table Of Contents</a>
| <a href="../../../../index.html">Keyword Index</a>
| <a href="../../../../toc0.html">Categories</a>
| <a href="../../../../toc1.html">Modules</a>
| <a href="../../../../toc2.html">Applications</a>
 ] <hr>
<div class="doctools">
<h1 class="doctools_title">log(n) 1.3 tcllib &quot;Logging facility&quot;</h1>
<div id="name" class="doctools_section"><h2><a name="name">Name</a></h2>
<p>log - Procedures to log messages of libraries and applications.</p>
</div>
<div id="toc" class="doctools_section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="doctools_toc">
<li class="doctools_section"><a href="#toc">Table Of Contents</a></li>
<li class="doctools_section"><a href="#synopsis">Synopsis</a></li>
................................................................................
<li class="doctools_section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="doctools_section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="doctools_synopsis">
<ul class="doctools_requirements">
<li>package require <b class="pkgname">Tcl 8</b></li>
<li>package require <b class="pkgname">log <span class="opt">?1.3?</span></b></li>
</ul>
<ul class="doctools_syntax">
<li><a href="#1"><b class="cmd">::log::levels</b></a></li>
<li><a href="#2"><b class="cmd">::log::lv2longform</b> <i class="arg">level</i></a></li>
<li><a href="#3"><b class="cmd">::log::lv2color</b> <i class="arg">level</i></a></li>
<li><a href="#4"><b class="cmd">::log::lv2priority</b> <i class="arg">level</i></a></li>
<li><a href="#5"><b class="cmd">::log::lv2cmd</b> <i class="arg">level</i></a></li>
................................................................................
<li><a href="#13"><b class="cmd">::log::lvChannel</b> <i class="arg">level</i> <i class="arg">chan</i></a></li>
<li><a href="#14"><b class="cmd">::log::lvChannelForall</b> <i class="arg">chan</i></a></li>
<li><a href="#15"><b class="cmd">::log::lvColor</b> <i class="arg">level</i> <i class="arg">color</i></a></li>
<li><a href="#16"><b class="cmd">::log::lvColorForall</b> <i class="arg">color</i></a></li>
<li><a href="#17"><b class="cmd">::log::log</b> <i class="arg">level</i> <i class="arg">text</i></a></li>
<li><a href="#18"><b class="cmd">::log::logarray</b> <i class="arg">level</i> <i class="arg">arrayvar</i> <span class="opt">?<i class="arg">pattern</i>?</span></a></li>
<li><a href="#19"><b class="cmd">::log::loghex</b> <i class="arg">level</i> <i class="arg">text</i> <i class="arg">data</i></a></li>

<li><a href="#20"><b class="cmd">::log::logMsg</b> <i class="arg">text</i></a></li>
<li><a href="#21"><b class="cmd">::log::logError</b> <i class="arg">text</i></a></li>
<li><a href="#22"><b class="cmd">::log::Puts</b> <i class="arg">level</i> <i class="arg">text</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="doctools_section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">log</b> package provides commands that allow libraries and
applications to selectively log information about their internal
operation and state.</p>
................................................................................
variable <i class="arg">arrayvar</i>, possibly restricted to entries matching the
<i class="arg">pattern</i>. The pattern defaults to <b class="const">*</b> (i.e. all entries) if
none was specified.</p></dd>
<dt><a name="19"><b class="cmd">::log::loghex</b> <i class="arg">level</i> <i class="arg">text</i> <i class="arg">data</i></a></dt>
<dd><p>Like <b class="cmd">::log::log</b>, but assumes that <i class="arg">data</i> contains binary
data. It converts this into a mixed hex/ascii representation before
writing them to the log.</p></dd>









<dt><a name="20"><b class="cmd">::log::logMsg</b> <i class="arg">text</i></a></dt>
<dd><p>Convenience wrapper around <b class="cmd">::log::log</b>.
Equivalent to <b class="cmd">::log::log info text</b>.</p></dd>
<dt><a name="21"><b class="cmd">::log::logError</b> <i class="arg">text</i></a></dt>
<dd><p>Convenience wrapper around <b class="cmd">::log::log</b>.
Equivalent to <b class="cmd">::log::log error text</b>.</p></dd>
<dt><a name="22"><b class="cmd">::log::Puts</b> <i class="arg">level</i> <i class="arg">text</i></a></dt>
<dd><p>The standard log command, it writes messages and their levels to
user-specified channels. Assumes that the suppression checks were done
by the caller. Expects full level names, abbreviations are
<em>not allowed</em>.</p></dd>
</dl>
</div>
<div id="section3" class="doctools_section"><h2><a name="section3">LEVELS</a></h2>







|







 







|







 







>
|
|
|







 







>
>
>
>
>
>
>
>
>
|


|


|







104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
...
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
...
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
...
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
| <a href="../../../toc.html">Table Of Contents</a>
| <a href="../../../../index.html">Keyword Index</a>
| <a href="../../../../toc0.html">Categories</a>
| <a href="../../../../toc1.html">Modules</a>
| <a href="../../../../toc2.html">Applications</a>
 ] <hr>
<div class="doctools">
<h1 class="doctools_title">log(n) 1.4 tcllib &quot;Logging facility&quot;</h1>
<div id="name" class="doctools_section"><h2><a name="name">Name</a></h2>
<p>log - Procedures to log messages of libraries and applications.</p>
</div>
<div id="toc" class="doctools_section"><h2><a name="toc">Table Of Contents</a></h2>
<ul class="doctools_toc">
<li class="doctools_section"><a href="#toc">Table Of Contents</a></li>
<li class="doctools_section"><a href="#synopsis">Synopsis</a></li>
................................................................................
<li class="doctools_section"><a href="#copyright">Copyright</a></li>
</ul>
</div>
<div id="synopsis" class="doctools_section"><h2><a name="synopsis">Synopsis</a></h2>
<div class="doctools_synopsis">
<ul class="doctools_requirements">
<li>package require <b class="pkgname">Tcl 8</b></li>
<li>package require <b class="pkgname">log <span class="opt">?1.4?</span></b></li>
</ul>
<ul class="doctools_syntax">
<li><a href="#1"><b class="cmd">::log::levels</b></a></li>
<li><a href="#2"><b class="cmd">::log::lv2longform</b> <i class="arg">level</i></a></li>
<li><a href="#3"><b class="cmd">::log::lv2color</b> <i class="arg">level</i></a></li>
<li><a href="#4"><b class="cmd">::log::lv2priority</b> <i class="arg">level</i></a></li>
<li><a href="#5"><b class="cmd">::log::lv2cmd</b> <i class="arg">level</i></a></li>
................................................................................
<li><a href="#13"><b class="cmd">::log::lvChannel</b> <i class="arg">level</i> <i class="arg">chan</i></a></li>
<li><a href="#14"><b class="cmd">::log::lvChannelForall</b> <i class="arg">chan</i></a></li>
<li><a href="#15"><b class="cmd">::log::lvColor</b> <i class="arg">level</i> <i class="arg">color</i></a></li>
<li><a href="#16"><b class="cmd">::log::lvColorForall</b> <i class="arg">color</i></a></li>
<li><a href="#17"><b class="cmd">::log::log</b> <i class="arg">level</i> <i class="arg">text</i></a></li>
<li><a href="#18"><b class="cmd">::log::logarray</b> <i class="arg">level</i> <i class="arg">arrayvar</i> <span class="opt">?<i class="arg">pattern</i>?</span></a></li>
<li><a href="#19"><b class="cmd">::log::loghex</b> <i class="arg">level</i> <i class="arg">text</i> <i class="arg">data</i></a></li>
<li><a href="#20"><b class="cmd">::log::logsubst</b> <i class="arg">level</i> <i class="arg">msg</i></a></li>
<li><a href="#21"><b class="cmd">::log::logMsg</b> <i class="arg">text</i></a></li>
<li><a href="#22"><b class="cmd">::log::logError</b> <i class="arg">text</i></a></li>
<li><a href="#23"><b class="cmd">::log::Puts</b> <i class="arg">level</i> <i class="arg">text</i></a></li>
</ul>
</div>
</div>
<div id="section1" class="doctools_section"><h2><a name="section1">Description</a></h2>
<p>The <b class="package">log</b> package provides commands that allow libraries and
applications to selectively log information about their internal
operation and state.</p>
................................................................................
variable <i class="arg">arrayvar</i>, possibly restricted to entries matching the
<i class="arg">pattern</i>. The pattern defaults to <b class="const">*</b> (i.e. all entries) if
none was specified.</p></dd>
<dt><a name="19"><b class="cmd">::log::loghex</b> <i class="arg">level</i> <i class="arg">text</i> <i class="arg">data</i></a></dt>
<dd><p>Like <b class="cmd">::log::log</b>, but assumes that <i class="arg">data</i> contains binary
data. It converts this into a mixed hex/ascii representation before
writing them to the log.</p></dd>
<dt><a name="20"><b class="cmd">::log::logsubst</b> <i class="arg">level</i> <i class="arg">msg</i></a></dt>
<dd><p>Like <b class="cmd">::log::log</b>, but <i class="arg">msg</i> may contain substitutions and variable references, which are evaluated in the caller scope first.
The purpose of this command is to avoid overhead in the non-logging case, if the log message building is expensive.
Any substitution errors raise an error in the command execution.
The following example shows an xml text representation, which is only generated in debug mode:</p>
<pre class="doctools_example">
    log::logsubst debug {XML of node $node is '[$node toXml]'}
</pre>
</dd>
<dt><a name="21"><b class="cmd">::log::logMsg</b> <i class="arg">text</i></a></dt>
<dd><p>Convenience wrapper around <b class="cmd">::log::log</b>.
Equivalent to <b class="cmd">::log::log info text</b>.</p></dd>
<dt><a name="22"><b class="cmd">::log::logError</b> <i class="arg">text</i></a></dt>
<dd><p>Convenience wrapper around <b class="cmd">::log::log</b>.
Equivalent to <b class="cmd">::log::log error text</b>.</p></dd>
<dt><a name="23"><b class="cmd">::log::Puts</b> <i class="arg">level</i> <i class="arg">text</i></a></dt>
<dd><p>The standard log command, it writes messages and their levels to
user-specified channels. Assumes that the suppression checks were done
by the caller. Expects full level names, abbreviations are
<em>not allowed</em>.</p></dd>
</dl>
</div>
<div id="section3" class="doctools_section"><h2><a name="section3">LEVELS</a></h2>

Changes to modules/json/json.man.

101
102
103
104
105
106
107




108
109
110
        "IDs": [116, 943, 234, 38793]
    }
}
=>
Image {IDs {116 943 234 38793} Thumbnail {Width 100 Height 125 Url http://www.example.com/image/481989943} Width 800 Height 600 Title {View from 15th Floor}}
}]





[vset CATEGORY json]
[include ../doctools2base/include/feedback.inc]
[manpage_end]







>
>
>
>



101
102
103
104
105
106
107
108
109
110
111
112
113
114
        "IDs": [116, 943, 234, 38793]
    }
}
=>
Image {IDs {116 943 234 38793} Thumbnail {Width 100 Height 125 Url http://www.example.com/image/481989943} Width 800 Height 600 Title {View from 15th Floor}}
}]

[section RELATED]

To write json, instead of parsing it, see package [package json::write].

[vset CATEGORY json]
[include ../doctools2base/include/feedback.inc]
[manpage_end]

Changes to modules/json/json_write.man.

79
80
81
82
83
84
85




86
87
88
This method takes a series of key/value arguments, the values already
formatted for JSON, and returns them as a properly formatted JSON
object as its result, with the keys formatted as JSON strings.

[list_end]
[para]





[vset CATEGORY json]
[include ../doctools2base/include/feedback.inc]
[manpage_end]







>
>
>
>



79
80
81
82
83
84
85
86
87
88
89
90
91
92
This method takes a series of key/value arguments, the values already
formatted for JSON, and returns them as a properly formatted JSON
object as its result, with the keys formatted as JSON strings.

[list_end]
[para]

[section RELATED]

To parse json, instead of writing it, see package [package json].

[vset CATEGORY json]
[include ../doctools2base/include/feedback.inc]
[manpage_end]