aboutsummaryrefslogtreecommitdiffstats
path: root/resources/chameleon_logback.xml
blob: b41301276a8711222f6c3e5053e64ca1c06abe34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<configuration scan="true" scanPeriod="3 seconds" debug="false">
  <!-- directory path for all other type logs -->

  <property name="logDir" value="/opt/chameleon/logs" />

  <!--  specify the component name -->
  <property name="componentName" value="AAI-CHAMELEON" />

  <!--  default eelf log file names -->
  <property name="generalLogName" value="error" />
  <property name="metricsLogName" value="metrics" />
  <property name="auditLogName" value="audit" />
  <property name="debugLogName" value="debug" />

  <property name="errorLogPattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{RequestId}|%thread|CHAMELEON|%mdc{PartnerName}|%logger||%.-5level|%msg%n" />

  <property name="auditMetricPattern" value="%msg%n" />

  <property name="logDirectory" value="${logDir}/${componentName}" />

  <!-- ============================================================================ -->
  <!-- EELF Appenders -->
  <!-- ============================================================================ -->

  <!-- The EELFAppender is used to record events to the general application log -->

  <appender name="EELF"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logDirectory}/${generalLogName}.log</file>
    <rollingPolicy
      class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.log.zip
      </fileNamePattern>
      <maxHistory>60</maxHistory>
    </rollingPolicy>
    <encoder>
      <pattern>${errorLogPattern}</pattern>
      <outputPatternAsHeader>true</outputPatternAsHeader>
    </encoder>
  </appender>

  <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">
    <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>INFO</level>
    </filter>
    <queueSize>256</queueSize>
    <appender-ref ref="EELF" />
  </appender>


  <!-- EELF Audit Appender. This appender is used to record audit engine
       related logging events. The audit logger and appender are specializations
       of the EELF application root logger and appender. This can be used to segregate
       Policy engine events from other components, or it can be eliminated to record
       these events as part of the application root log. -->

  <appender name="EELFAudit"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logDirectory}/${auditLogName}.log</file>
    <rollingPolicy
      class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.log.zip
      </fileNamePattern>
      <maxHistory>60</maxHistory>
    </rollingPolicy>
    <encoder>
      <outputPatternAsHeader>true</outputPatternAsHeader>
      <pattern>${auditMetricPattern}</pattern>
    </encoder>
  </appender>

  <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>256</queueSize>
    <appender-ref ref="EELFAudit" />
  </appender>
  <!-- ============================================================================ -->
  <!--  EELF loggers -->
  <!-- ============================================================================ -->

  <!-- CHAMELEON Service loggers -->
  <logger name="chameleon" level="INFO">
    <appender-ref ref="asyncEELF" />
  </logger>

  <logger name="com.att.eelf.audit" level="info" additivity="false">
    <appender-ref ref="asyncEELFAudit" />
  </logger>

  <!-- Other Loggers that may help troubleshoot -->
  <logger name="net.sf" level="WARN" />
  <logger name="org.apache" level="WARN" />
  <logger name="org.apache.commons.httpclient" level="WARN" />
  <logger name="org.apache.commons" level="WARN" />
  <logger name="org.apache.coyote" level="WARN" />
  <logger name="org.apache.jasper" level="WARN" />

  <!-- logback internals logging -->
  <logger name="ch.qos.logback.classic" level="WARN" />
  <logger name="ch.qos.logback.core" level="WARN" />

  <root>
    <!-- <appender-ref ref="asyncEELF" /> -->
    <!-- <appender-ref ref="asyncEELFDebug" /> -->
  </root>

</configuration>