<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.geministation.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ALogger%2Fdoc</id>
	<title>Module:Logger/doc - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.geministation.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ALogger%2Fdoc"/>
	<link rel="alternate" type="text/html" href="https://wiki.geministation.com/index.php?title=Module:Logger/doc&amp;action=history"/>
	<updated>2026-06-04T04:54:05Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.geministation.com/index.php?title=Module:Logger/doc&amp;diff=8879&amp;oldid=prev</id>
		<title>Banri: Created page with &quot;{{documentation}} This module is deprecated in favour of using &lt;code&gt;mw.logObject(obj)&lt;/code&gt;, but is still provided as an alternative. {{Helper module |name = Logger  |fname1...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.geministation.com/index.php?title=Module:Logger/doc&amp;diff=8879&amp;oldid=prev"/>
		<updated>2021-03-24T01:57:50Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{documentation}} This module is deprecated in favour of using &amp;lt;code&amp;gt;mw.logObject(obj)&amp;lt;/code&amp;gt;, but is still provided as an alternative. {{Helper module |name = Logger  |fname1...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{documentation}}&lt;br /&gt;
This module is deprecated in favour of using &amp;lt;code&amp;gt;mw.logObject(obj)&amp;lt;/code&amp;gt;, but is still provided as an alternative.&lt;br /&gt;
{{Helper module&lt;br /&gt;
|name = Logger&lt;br /&gt;
&lt;br /&gt;
|fname1 = log(table)&lt;br /&gt;
|ftype1 = table&lt;br /&gt;
|fuse1 = &amp;#039;&amp;#039;&amp;#039;Deprecated:&amp;#039;&amp;#039;&amp;#039; use&amp;lt;code&amp;gt;mw.logObject(obj)&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
Logs the contents of the table to the console (does not expand subtables).&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* Assumes all table indices can be represented as strings - using functions or tables as indices will result in non-specific log entries&lt;br /&gt;
* This is best used by adding &amp;lt;code&amp;gt;p.logger = require(&amp;#039;Module:Logger&amp;#039;)&amp;lt;/code&amp;gt; to the top of the module, then calling &amp;lt;code&amp;gt;p.logger.log(obj)&amp;lt;/code&amp;gt; in the debug console on the module page&lt;br /&gt;
* This module will only print to the debug console - it has no use when used outside of the development environment and should be removed/commented out before saving&lt;br /&gt;
&lt;br /&gt;
|fname2 =  deep_log(table)&lt;br /&gt;
|ftype2 = table&lt;br /&gt;
|fuse2 = &amp;#039;&amp;#039;&amp;#039;Deprecated:&amp;#039;&amp;#039;&amp;#039; use&amp;lt;code&amp;gt;mw.logObject(obj)&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
Logs the contents of the table to the console, expanding subtables. See above notes.&lt;br /&gt;
&lt;br /&gt;
|fname3 = dumpObject(table, options)&lt;br /&gt;
|ftype3 = table, table/nil&lt;br /&gt;
|fuse3 = Modified version of mw.dumpObject. Default values of the options are:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;clean&amp;lt;/code&amp;gt; = &amp;lt;samp&amp;gt;false&amp;lt;/samp&amp;gt;;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Removes the &amp;lt;code&amp;gt;table#n&amp;lt;/code&amp;gt; and expands all tables even if the same table appears multiple times. The output is safe to load again by lua without further processing. Does not work for circular dependencies.&lt;br /&gt;
* &amp;lt;code&amp;gt;indentSize&amp;lt;/code&amp;gt; = 2;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Number of spaces/tabs to add for each indent level.&lt;br /&gt;
* &amp;lt;code&amp;gt;useTabs&amp;lt;/code&amp;gt; = &amp;lt;samp&amp;gt;false&amp;lt;/samp&amp;gt;;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Use tabs to indent instead of spaces.&lt;br /&gt;
* &amp;lt;code&amp;gt;tabSize&amp;lt;/code&amp;gt; = 4;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Used to calculate the collapseLimit.&lt;br /&gt;
* &amp;lt;code&amp;gt;collapseLimit&amp;lt;/code&amp;gt; = 0;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Maximum length for collapsing a table onto a single line.&lt;br /&gt;
* &amp;lt;code&amp;gt;collapseArrays&amp;lt;/code&amp;gt; = &amp;lt;samp&amp;gt;true&amp;lt;/samp&amp;gt;;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Allow arrays to collapse onto a single line.&lt;br /&gt;
* &amp;lt;code&amp;gt;wrapLongArrays&amp;lt;/code&amp;gt; = &amp;lt;samp&amp;gt;false&amp;lt;/samp&amp;gt;;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Keep arrays collapsed and simply continue on a new line if the current line is longer then &amp;lt;samp&amp;gt;collapseLimit&amp;lt;/samp&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;collapseObjects&amp;lt;/code&amp;gt; = &amp;lt;samp&amp;gt;true&amp;lt;/samp&amp;gt;;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Allow key-value pairs to collapse onto a single line.&lt;br /&gt;
* &amp;lt;code&amp;gt;addEqualSignSpaces&amp;lt;/code&amp;gt; = &amp;lt;samp&amp;gt;false&amp;lt;/samp&amp;gt;;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Add spaces around equal signes when the table is collapsed. Non collapsed table always have spaces.&lt;br /&gt;
* &amp;lt;code&amp;gt;addBracketSpaces&amp;lt;/code&amp;gt; = &amp;lt;samp&amp;gt;true&amp;lt;/samp&amp;gt;;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Add spaces between the brackets and the data for collapsed tables i.e. &amp;lt;code&amp;gt;{ &amp;#039;data&amp;#039; }&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;numberPrecision&amp;lt;/code&amp;gt; = &amp;lt;samp&amp;gt;-1&amp;lt;/samp&amp;gt;;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; Number of decimals. Trailing zeros are trimmed. Negative numbers means let lua decide.&lt;br /&gt;
&lt;br /&gt;
|fname4 = logObject(table, options)&lt;br /&gt;
|ftype4 = table, table/nil&lt;br /&gt;
|fuse4 = Uses dumpObject and prints its result to the console.&lt;br /&gt;
&lt;br /&gt;
|fname5 = logCleanTable(table, options)&lt;br /&gt;
|ftype5 = table, table/nil&lt;br /&gt;
|fuse5 = Uses dumpObject and prints its results to the console but has the following default options changed:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;clean&amp;lt;/code&amp;gt; = &amp;lt;samp&amp;gt;true&amp;lt;/samp&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;indentSize&amp;lt;/code&amp;gt; = 4&lt;br /&gt;
* &amp;lt;code&amp;gt;collapseLimit&amp;lt;/code&amp;gt; = 100&lt;br /&gt;
* &amp;lt;code&amp;gt;collapseArrays&amp;lt;/code&amp;gt; = &amp;lt;samp&amp;gt;true&amp;lt;/samp&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;collapseObjects&amp;lt;/code&amp;gt; = &amp;lt;samp&amp;gt;true&amp;lt;/samp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|example = &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;#039;lua&amp;#039;&amp;gt;&lt;br /&gt;
local logger = require(&amp;#039;Module:Logger&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local t1 = { 1, 2, 3, 4 }&lt;br /&gt;
local t2 = { 1, 2, 3, a=&amp;#039;a&amp;#039; }&lt;br /&gt;
local t3 = { a=&amp;#039;a&amp;#039;, b=&amp;#039;b&amp;#039; }&lt;br /&gt;
local t4 = { a=t1, b=t1, t2, t3 }&lt;br /&gt;
local t5 = { 1, 2, 3, &amp;#039;4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444&amp;#039; }&lt;br /&gt;
local t6 = { &amp;#039;1&amp;#039;, &amp;#039;2&amp;#039;, a={&amp;#039;12&amp;#039;} }&lt;br /&gt;
&lt;br /&gt;
mw.log( p.dumpObject(t1) )&lt;br /&gt;
logger.logCleanTable(t2)&lt;br /&gt;
logger.logCleanTable(t3)&lt;br /&gt;
logger.logCleanTable(t4, { collapseLimit=60 })&lt;br /&gt;
logger.logCleanTable(t5)&lt;br /&gt;
logger.logObject(t6)&lt;br /&gt;
-- table#1 (#=4, n=4) {&lt;br /&gt;
--   1,&lt;br /&gt;
--   2,&lt;br /&gt;
--   3,&lt;br /&gt;
--   4,&lt;br /&gt;
-- }&lt;br /&gt;
-- { 1, 2, 3, a=&amp;quot;a&amp;quot; }&lt;br /&gt;
-- { a=&amp;quot;a&amp;quot;, b=&amp;quot;b&amp;quot; }&lt;br /&gt;
-- {&lt;br /&gt;
--     { 1, 2, 3, a=&amp;quot;a&amp;quot; },&lt;br /&gt;
--     { a=&amp;quot;a&amp;quot;, b=&amp;quot;b&amp;quot; },&lt;br /&gt;
--     a = { 1, 2, 3, 4 },&lt;br /&gt;
--     b = { 1, 2, 3, 4 },&lt;br /&gt;
-- }&lt;br /&gt;
-- {&lt;br /&gt;
--     1,&lt;br /&gt;
--     2,&lt;br /&gt;
--     3,&lt;br /&gt;
--     &amp;quot;4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444&amp;quot;,&lt;br /&gt;
-- }&lt;br /&gt;
-- table#1 (#=2, n=3) {&lt;br /&gt;
--   &amp;quot;1&amp;quot;,&lt;br /&gt;
--   &amp;quot;2&amp;quot;,&lt;br /&gt;
--   [&amp;quot;a&amp;quot;] = table#2 (#=1, n=1) {&lt;br /&gt;
--     &amp;quot;12&amp;quot;,&lt;br /&gt;
--   },&lt;br /&gt;
-- }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Banri</name></author>
	</entry>
</feed>