blob: ed5f87dd9b85f94f4ddec0bba5f424ae9f9510b9 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one or more
~ contributor license agreements. See the NOTICE file distributed with
~ this work for additional information regarding copyright ownership.
~ The ASF licenses this file to you under the Apache License, Version 2.0
~ (the "License"); you may not use this file except in compliance with
~ the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<Configuration xmlns="https://logging.apache.org/xml/ns"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
https://logging.apache.org/xml/ns
https://logging.apache.org/xml/ns/log4j-config-2.xsd">
<Appenders>
<Console name="STDOUT">
<PatternLayout>
<ScriptPatternSelector defaultPattern="%d %p %m%n">
<ScriptRef ref="SELECTOR_SCRIPT"/>
<PatternMatch key="NoLocation" pattern="[%-5level] %c{1.} %msg%n"/>
<PatternMatch key="Flow"
pattern="[%-5level] %c{1.} ====== %C{1.}.%M:%L %msg ======%n"/>
</ScriptPatternSelector>
</PatternLayout>
</Console>
</Appenders>
<Loggers>
<Logger name="EventLogger">
<ScriptFilter onMatch="ACCEPT" onMismatch="DENY">
<Script name="EVENT_LOGGER_FILTER" language="groovy"><![CDATA[
if (logEvent.getMarker() != null
&& logEvent.getMarker().isInstanceOf("FLOW")) {
return true;
} else if (logEvent.getContextMap().containsKey("UserId")) {
return true;
}
return false;
]]>
</Script>
</ScriptFilter>
</Logger>
<Root level="INFO">
<ScriptFilter onMatch="ACCEPT" onMismatch="DENY">
<ScriptRef ref="ROOT_FILTER"/>
</ScriptFilter>
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
<Scripts>
<Script name="SELECTOR_SCRIPT" language="javascript"><![CDATA[
var result;
if (logEvent.getLoggerName().equals("JavascriptNoLocation")) {
result = "NoLocation";
} else if (logEvent.getMarker() != null
&& logEvent.getMarker().isInstanceOf("FLOW")) {
result = "Flow";
}
result;
]]>
</Script>
<ScriptFile name="ROOT_FILTER" path="scripts/filter.groovy"/>
</Scripts>
</Configuration>