Cross Reference: /yui3/src/console/docs/console-yui-config.mustache
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly{{>console-yui-config-css}}
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly<div class="intro">
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly <p>This example illustrates how to configure your YUI instance to ignore certain log messages to aid in reducing the signal-to-noise ratio when debugging.</p>
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly <p>Log messages filtered out from the YUI config are permanently ignored. If you want to be able to temporarily hide and reshow messages, use the <a href="../console-filters/">ConsoleFilters plugin</a>. It is not uncommon to set up `logInclude` or `logExclude` in the YUI configuration and use the ConsoleFilters plugin.</p>
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly <p>Log messages can be ignored based on the source (e.g. `event` or `attribute`) or based on their log level (info, warn, error).</p>
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly</div>
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
819e90d415ed17d59af3a247b2ad9d6feb0c21b5Luke Smith<div class="example yui3-skin-sam">
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly{{>console-yui-config-markup}}
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly{{>console-yui-config-js}}
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly</div>
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly<h3>Setting up filters in the YUI configuration</h3>
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly<p>The configuration object passed to the YUI constructor supports a few settings that can help manage Console output while debugging. These configuration options are `logExclude`, `logInclude`, `logLevel`, `filter`, and `filters`.</p>
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly<p>This example will show the use of the `logInclude`, `logExclude`, and `logLevel` configurations.</p>
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly<p>An example configuration might look like this:</p>
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly```
b96d996309309541dc72ee198c96c06e1b16bbfeJenny DonnellyYUI({
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly filter : 'debug', // request -debug versions of modules for log statements
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly logExclude : {
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly event : true, // Don't broadcast log messages from the event module
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly attribute : true, // or the attribute module
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly widget : true // or the widget module
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly },
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly logLevel : 'error', // Show only errors in the Console
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly useBrowserConsole : false // Don't use the browser's native console
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly}).use('overlay','anim','console', function (Y) {
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly/* Console instances will default to logLevel = "info" */
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly});
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly```
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly<p>`logExclude` and `logInclude` prevent the logging subsystem from broadcasting filtered log messages. `logLevel`, on the other hand is used by Console instances to filter messages received from the subsystem.</p>
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly<p>Updating `Y.config.logExclude` or `Y.config.logInclude` at runtime will immediately change the subsystem filtering, but will not recover messages previously sent from that source.</p>
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly```
b96d996309309541dc72ee198c96c06e1b16bbfeJenny DonnellyYUI({
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly logExclude : {
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly event : true
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly }
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly}).use('console', function (Y) {
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly/* In here, Y.config refers to the config object passed to the constructor */
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly// Stop broadcasting log messages from the attribute module
b96d996309309541dc72ee198c96c06e1b16bbfeJenny DonnellyY.config.logExclude.attribute = true;
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly// Start broadcasting log messages from the event module again
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnellydelete Y.config.logExclude.event;
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly});
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly```
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly<p>When a Console is instantiated, barring explicit `logLevel` attribute configuration, the `logLevel` will be adopted from the YUI instance's configured `logLevel`, or `Y.Console.LOG_LEVEL_INFO` (&quot;info&quot;) as a fallback. Unlike `logExclude`, changing the value in the YUI configuration will only affect instantiated Consoles from that point on. Additionally, you can manually override the `logLevel` a Console instance will display by updating its `logLevel` attribute.</p>
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly```
b96d996309309541dc72ee198c96c06e1b16bbfeJenny DonnellyYUI({ logLevel : "warn" }).use('console', function (Y) {
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnellyvar yconsole_1 = new Y.Console(); // logLevel == "warn"
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnellyvar yconsole_2 = new Y.Console({
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly logLevel : "info" // override at construction
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly});
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly// This will not affect yconsole_1 or yconsole_2
b96d996309309541dc72ee198c96c06e1b16bbfeJenny DonnellyY.config.logLevel = "error";
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnellyvar yconsole_3 = new Y.Console(); // logLevel == "error"
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnellyyconsole_1.set("logLevel", "info"); // update this instance
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly});
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly```
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly<p>The interactive portion of this example illustrates the effect of various filter settings against logged messages. In a real application, it is most likely that the logging configuration won't be changed at runtime but set once in the YUI configuration at construction.</p>
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly<p>The most relevant portion of the <a href="#full_code_listing">code for the demo above</a> is the updating of the YUI config and Console attribute.</p>
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly```
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly// Create and render the Console
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnellyvar yconsole = new Y.Console({
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly boundingBox: '#console', // anchored to the page for the demo
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly style: "block"
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly}).render();
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly...
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly// Source include or exclude select
b96d996309309541dc72ee198c96c06e1b16bbfeJenny DonnellyY.on("change", function () {
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly if (this.get("value") === "logInclude") {
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly Y.config.logInclude = Y.config.logExclude;
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly delete Y.config.logExclude;
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly } else {
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly Y.config.logExclude = Y.config.logInclude;
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly delete Y.config.logInclude;
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly }
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly updatePreview();
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly}, "#incexc");
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly// These functions are called from a delegated event handler.
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly// See the Full Code Listing for how they are called.
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnellyfunction updateSourceFilters(source, checked) {
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly var disposition = Y.one("#incexc").get("value"),
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly cfg = Y.config[disposition]; // Y.config.logInclude or logExclude
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly if (checked) {
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly if (!cfg) {
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly cfg = Y.config[disposition] = {};
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly }
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly cfg[source] = true; // e.g. Y.config.logInclude.sourceA = true;
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly } else {
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly delete cfg[source];
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly if (!Y.Object.size(cfg)) {
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly delete Y.config[disposition];
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly }
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly }
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly updatePreview();
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly}
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnellyfunction updateLogLevel(level, checked) {
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly if (checked) {
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly Y.config.logLevel = level;
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly yconsole.set("logLevel", level);
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly updatePreview();
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly }
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly}
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly```
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly<h3 id="full_code_listing">Full Code Listing</h3>
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly<h4>Markup</h4>
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly```
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly{{>console-yui-config-markup}}
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly```
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly<h4>JavaScript</h4>
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly```
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly{{>console-yui-config-js}}
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly```
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly<h4>CSS</h4>
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly```
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly{{>console-yui-config-css}}
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly```
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly
b96d996309309541dc72ee198c96c06e1b16bbfeJenny Donnelly