enable log4j logging to elasticstack within onos
sucess on retrigger: https://jenkins.opencord.org/job/xos-api-sanity-pipeline/63/console

Change-Id: Ie855cc2ae69c684846c30bdd2f922c80d6a0f7f5
diff --git a/roles/onos-cord-install/defaults/main.yml b/roles/onos-cord-install/defaults/main.yml
index b319b19..adcf4de 100644
--- a/roles/onos-cord-install/defaults/main.yml
+++ b/roles/onos-cord-install/defaults/main.yml
@@ -9,3 +9,8 @@
 onos_cord_dest: "{{ ansible_user_dir }}/onos-cord/"
 
 node_private_key: "{{ ansible_user_dir }}/node_key"
+
+# log host is currently set to IP of `elastic` VM, created by build repo
+logging_host: "10.100.198.222"
+log4j_port: 4560
+
diff --git a/roles/onos-cord-install/tasks/main.yml b/roles/onos-cord-install/tasks/main.yml
index eb1f64e..16991ff 100644
--- a/roles/onos-cord-install/tasks/main.yml
+++ b/roles/onos-cord-install/tasks/main.yml
@@ -27,6 +27,7 @@
   with_items:
     - Dockerfile
     - onos-service
+    - org.ops4j.pax.logging.cfg
 
 - name: Copy over ONOS playbook and other files
   copy:
diff --git a/roles/onos-cord-install/templates/Dockerfile.j2 b/roles/onos-cord-install/templates/Dockerfile.j2
index e79f87b..263767f 100644
--- a/roles/onos-cord-install/templates/Dockerfile.j2
+++ b/roles/onos-cord-install/templates/Dockerfile.j2
@@ -24,3 +24,6 @@
 COPY onos-service /root/onos/bin/onos-service
 RUN chmod 755 /root/onos/bin/onos-service
 
+# Configure ONOS to log with log4j to ElasticStack
+COPY org.ops4j.pax.logging.cfg /root/onos/apache-karaf-3.0.5/etc/org.ops4j.pax.logging.cfg
+
diff --git a/roles/onos-cord-install/templates/org.ops4j.pax.logging.cfg.j2 b/roles/onos-cord-install/templates/org.ops4j.pax.logging.cfg.j2
new file mode 100644
index 0000000..2761c7e
--- /dev/null
+++ b/roles/onos-cord-install/templates/org.ops4j.pax.logging.cfg.j2
@@ -0,0 +1,55 @@
+################################################################################
+#
+#    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.
+#
+################################################################################
+
+# Root logger
+log4j.rootLogger=INFO, out, logstash, osgi:*
+log4j.throwableRenderer=org.apache.log4j.OsgiThrowableRenderer
+
+# CONSOLE appender not used by default
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
+
+# logstash log4j appender
+log4j.appender.logstash=org.apache.log4j.net.SocketAppender
+log4j.appender.logstash.threshold=DEBUG
+log4j.appender.logstash.Port={{ log4j_port }}
+log4j.appender.logstash.RemoteHost={{ logging_host }}
+log4j.appender.logstash.ReconnectionDelay=5000
+log4j.appender.logstash.Application=onoscord
+
+# File appender
+log4j.appender.out=org.apache.log4j.RollingFileAppender
+log4j.appender.out.layout=org.apache.log4j.PatternLayout
+log4j.appender.out.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
+log4j.appender.out.file=${karaf.data}/log/karaf.log
+log4j.appender.out.append=true
+log4j.appender.out.maxFileSize=10MB
+log4j.appender.out.maxBackupIndex=10
+
+# Sift appender
+log4j.appender.sift=org.apache.log4j.sift.MDCSiftingAppender
+log4j.appender.sift.key=bundle.name
+log4j.appender.sift.default=karaf
+log4j.appender.sift.appender=org.apache.log4j.FileAppender
+log4j.appender.sift.appender.layout=org.apache.log4j.PatternLayout
+log4j.appender.sift.appender.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %m%n
+log4j.appender.sift.appender.file=${karaf.data}/log/$\\{bundle.name\\}.log
+log4j.appender.sift.appender.append=true
+