我想以这样的方式配置logback:只有当系统变量LOGGER_ENABLED设置为true时,某些特定的appender才会起作用。如果根本没有设置变量,则不应该给出任何错误。 所以我尝试了几种方法 1.仅设置env变量并将其用作logback中的
<if condition='${LOGGER_ENABLED}'>
<then>
<appender-ref ref="MyAppender"/>
</then>
</if>
如果变量设置为true,则它可以正常工作。如果它不存在 - 它会抛出错误,如...未定义 2.另一个问题是使用spring yml文件并将其设置为
sendErrors=${LOGGER_ENABLED:false} //that means to use false if not set
并在logback中使用
<if condition='${sendErrors}'>
<then>
<appender-ref ref="MyAppender"/>
</then>
</if>
以这种方式它只能用于静态“false”或“true”值,并且不会预取$ {LOGGER_ENABLED:false}条件。
是否可以使用spring boot和logback执行此类配置?
答案 0 :(得分:1)
您应该可以在logback.xml
中对此进行配置。类似的东西:
<logger name="com.myorg.foo" level="${logging.level.com.myorg.foo}" additivity="false">
<!-- <appender-ref ref="console" /> -->
<appender-ref ref="MyAppender" />
</logger>
其中logging.level.com.myorg.foo
是您在logback.xml
中定义的属性,例如您的变量LOGGER_ENABLED
<property name="logging.level.com.myorg.foo" value="ERROR"/>
答案 1 :(得分:0)
好的,我在问题上找到了答案。 在logback文件中,默认分隔符为&#34;: - &#34;而不是&#34;:&#34;一般春季启动文件。 将分隔符替换为&#34;: - &#34;我能够在logback文件中准确指定默认值