Gemäß den Anforderungen möchten wir INFO-Level-Daten in DEV- und QA-Environments protokollieren, aber in Production- und IAT-Umgebungen möchten wir nur FEHLER-Level-Daten protokollieren.Log-Level dynamisch übergeben in log4j2.xml in Mule ESB
Gemäß Mule-Richtlinien können wir log4j.xml im Verzeichnis $ {mule.home}/conf konfigurieren, wie wir es in den oben genannten Umgebungen benötigen. Auf diese Weise können wir unsere Anforderung erfüllen, aber wir haben keine Änderung auf der Konfigurationsebene, es erfordert viele I & O-Team-Genehmigungen.
Wir möchten diese Änderung in log4j2.xml auf Anwendungsebene vornehmen. Momentan übergebe ich ein vm-Argument für den Log-Level, wie unten gezeigt.
Wir wollen auch nicht mit diesem Ansatz gehen, weil wir mit I & O-Team arbeiten müssen, um log.level-Eigenschaft in Servern zu konfigurieren. Gute Sache ist, haben wir mule.env Eigenschaft in allen Umgebungen, die einen Wert DEV, QA, STG und PROD hat.
Können Sie mir bitte einen anderen Ansatz vorschlagen, bei dem ich den Log-Level basierend auf dem mule.env-Wert auswerten kann?
<AsyncLogger name="org.glassfish.grizzly" level="${sys:log.level}"/>
<AsyncLogger name="org.asynchttpclient" level="${sys:log.level}"/>
<AsyncLogger name="httpclient.wire" level="${sys:log.level}"/>
<AsyncLogger name="com.ning.http.client.providers.grizzly" level="${sys:log.level}"/>
<AsyncLogger name="WageGarnishment" level="${sys:log.level}"/>
<AsyncLogger name="org.mule.modules.jobtrackingservices.generated.adapters.JobtrackingservicesConnectorConnectorConfigBasicAdapter" level="${sys:log.level}"/>
<AsyncLogger name="org.mule.module.http.internal.HttpMessageLogger" level="${sys:log.level}"/>
<AsyncLogger name="Main Flow" level="${sys:log.level}"/>
<AsyncLogger name="CDMValidator" level="FATAL"/>
<AsyncLogger name="com.adp.xyz.cdmvalidator.validator.BaseValidator" level="${sys:log.level}"/>
<AsyncLogger name="com.adp.xyz" level="${sys:log.level}"/>