@@ -55,8 +55,8 @@ <h3 id="simple_example">Using System properties</h3>
55
55
56
56
< h3 id ="simple_example_builder "> Using RainbowGum Builders</ h3 >
57
57
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.
60
60
61
61
Assuming we have < a href ="#installation "> installed RainbowGum as a dependency</ a > a simple configuration example using
62
62
Java directly and the {@link java.util.ServiceLoader} is below.
@@ -122,11 +122,30 @@ <h3 id="limitations">Limitations</h3>
122
122
Currently Rainbow Gum does not provide support for:
123
123
124
124
< 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 >
126
127
< li > Rolling of log files without external tool - there is support for rolling without losing events using external tool such as logrotate.</ li >
127
128
< li > {@linkplain org.slf4j.Marker SLF4J Marker} support - libraries and application rarely use it compared to MDC. </ li >
128
129
</ ul >
129
130
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
+
130
149
If any of these limitations (or others not listed) are a show stopper please let us know by filing an issue.
131
150
Particularly Markers. If you are using Markers we would like to hear from you.
132
151
@@ -137,8 +156,8 @@ <h2 id="how_it_works">How it works</h2>
137
156
out of the box:
138
157
139
158
< ul >
140
- < li > Programmatic Java configuration using builders.</ li >
141
159
< li > Simple String key/value properties often derived from System properties / env variables</ li >
160
+ < li > Programmatic Java configuration using builders.</ li >
142
161
< li > Dependency driven configuration where including a jar as dependency changes behavior automatically</ li >
143
162
</ ul >
144
163
0 commit comments