Skip to content

Commit 1ce7792

Browse files
committed
Explain lack of default config file #172
1 parent a8b5964 commit 1ce7792

File tree

1 file changed

+23
-4
lines changed

1 file changed

+23
-4
lines changed

doc/overview.html

+23-4
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ <h3 id="simple_example">Using System properties</h3>
5555

5656
<h3 id="simple_example_builder">Using RainbowGum Builders</h3>
5757

58-
For organizations that have many projects it is recommended to use the programmatic builder approach and make a standardized jar (module)
59-
shared between all your projects so that logging configuration is consistent.
58+
For technical organizations that have many projects it is recommended to use the programmatic builder approach and make a standardized jar (module)
59+
shared between all your projects so that logging initialization and configuration is consistent.
6060

6161
Assuming we have <a href="#installation">installed RainbowGum as a dependency</a> a simple configuration example using
6262
Java directly and the {@link java.util.ServiceLoader} is below.
@@ -122,11 +122,30 @@ <h3 id="limitations">Limitations</h3>
122122
Currently Rainbow Gum does not provide support for:
123123

124124
<ul>
125-
<li>External config - by design you will need to bring your own configuration lib or just use env/system properties.</li>
125+
<li>Default external config file (e.g. log4j2.xml) - by design but do not worry because Rainbow Gum provides lots of extensions to use
126+
your applications configuration system. Out of the box system properties are supported.</li>
126127
<li>Rolling of log files without external tool - there is support for rolling without losing events using external tool such as logrotate.</li>
127128
<li>{@linkplain org.slf4j.Marker SLF4J Marker} support - libraries and application rarely use it compared to MDC. </li>
128129
</ul>
129130

131+
The reason Rainbow Gum does not provide a default logging configuration file is:
132+
133+
<ul>
134+
<li>
135+
It is actually fairly expensive to load resources from the module/classpath on initialization. If your configuration system
136+
is already loading a resource it should be used instead.
137+
</li>
138+
<li>
139+
In GraalVM native and in some cases modular environment loading module/classpath resources is more complicated.
140+
We do not want an OOB experience where it works in normal HotSpot but not in GraalVM native.
141+
</li>
142+
<li>
143+
It increases the security surface and Rainbow Gum aims to have security and integrity by default.
144+
Implicit loading of resources we feel is against this and if done should be a chosen opt-in which
145+
you can have with various extensions.
146+
</li>
147+
</ul>
148+
130149
If any of these limitations (or others not listed) are a show stopper please let us know by filing an issue.
131150
Particularly Markers. If you are using Markers we would like to hear from you.
132151

@@ -137,8 +156,8 @@ <h2 id="how_it_works">How it works</h2>
137156
out of the box:
138157

139158
<ul>
140-
<li>Programmatic Java configuration using builders.</li>
141159
<li>Simple String key/value properties often derived from System properties / env variables</li>
160+
<li>Programmatic Java configuration using builders.</li>
142161
<li>Dependency driven configuration where including a jar as dependency changes behavior automatically</li>
143162
</ul>
144163

0 commit comments

Comments
 (0)