What You'll Get
-->How To
Get an account at logentries. For a start, you'll get free forever account for 1 GB of logs per month, which is cool. :-)
We need to patch leappender-1-1.5.jar by
adding OSGi manifest headers and attach it as fragment to
pax-logging-service. (in CentOS/Amazon Linux,
jar
requires java-1.7.0-openjdk-devel yum
package)wget
'https://github.com/downloads/logentries/le_java/leappender-1.1.5.jar'unzip
-d leappender leappender-1.1.5.jarmkdir
-vp leappender/META-INF
nano
leappender/META-INF/MANIFEST.MF
Replace with:
Manifest-Version: 1.0Bundle-ManifestVersion: 2Bundle-Name: com.logentries.leappenderBundle-SymbolicName: com.logentries.leappenderBundle-Version: 1.1.5Created-By: 1.7.0_09-icedtea (Oracle Corporation)Export-Package: com.logentries.log4j;uses:="org.apache.log4j.spi";version="1.1.5"Import-Package: org.apache.log4j,org.apache.log4j.spiFragment-Host:org.ops4j.pax.logging.pax-logging-service
rm -v
leappender-1.1.5.bar;
jar
-cvfm
leappender-1.1.5.bar
leappender/META-INF/MANIFEST.MF
-C
leappender
.# Wrap it first
using bnd
wget -O
bnd.jar
'http://search.maven.org/remotecontent?filepath=biz/aQute/bnd/1.50.0/bnd-1.50.0.jar'
java
-jar bnd.jar wrap leappender-1.1.5.jar
our appender bundle should be present in the
system folder and defined in etc/startup.properties.
The system folder has a “Maven repo like”
structure. So you have to copy with:
system/groupId/artifactId/version/artifactId-version.jar
In our example, it means:
mkdir -vp
system/com/logentries/leappender/1.1.5/cp
-v leappender-1.1.5.bar
system/com/logentries/leappender/1.1.5/leappender-1.1.5.jar
and in
etc/startup.properties,
we define the appender bundle just before the
pax-logging-service bundle:...
org/ops4j/pax/logging/pax-logging-api/1.7.0/pax-logging-api-1.7.0.jar=8com/logentries/leappender/1.1.5/leappender-1.1.5.jar=8
org/ops4j/pax/logging/pax-logging-service/1.7.0/pax-logging-service-1.7.0.jar=8
...
Edit Karaf's
etc/org.ops4j.pax.logging.cfg
:log4j.rootLogger = INFO,
out, le,
osgi:*
...# Logentries
appender
log4j.appender.le=com.logentries.log4j.LeAppender
log4j.appender.le.Token=LOGENTRIES_TOKEN
log4j.appender.le.Debug=true
log4j.appender.le.layout=org.apache.log4j.PatternLayout
log4j.appender.le.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %-32.32C %4L | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
#log4j.appender.le.layout.ConversionPattern=%d{yyyy-MM-dd
HH:mm:ss ZZZ} %-5p: %F:%L %m
Note: The LOGENTRIES_TOKEN parameter can be
found beside the logfile which we created earlier.
I can't get this to work automatically, so on
first Karaf launch you'll get ClassNotFoundException, then you'll
need to install it:
install
mvn:com.logentries/leappender/1.1.5
bundle-level <id> 8
Now it should work.
Happy logging! :-)
References:
