# How to use "ECS logging Java"?

**URL:** <https://discuss.elastic.co/t/how-to-use-ecs-logging-java/206348>\
**Category:** APM\
**Created:** [November 4, 2019, 7:55am UTC](https://discuss.elastic.co/t/how-to-use-ecs-logging-java/206348 "2019-11-04T07:55:37Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![wajika](https://avatars.discourse-cdn.com/v4/letter/w/977dab/32.png) [@wajika](https://discuss.elastic.co/u/wajika)\
**Post date:** [November 4, 2019, 7:55am UTC](https://discuss.elastic.co/t/how-to-use-ecs-logging-java/206348/1 "2019-11-04T07:55:37Z")

</div>

I add log4j2-ecs-layout dependency to the application

 ![apm](https://us1.discourse-cdn.com/elastic/original/3X/a/1/a1fc11291c82afb1bb24a51b308badec66143079.png)

log4j2.xml

 ![logapm](https://us1.discourse-cdn.com/elastic/original/3X/7/f/7f712edd4aa5fcdc807acf6137abee6690c505eb.png)

COMMAND:  
—————————————————————  
java -javaagent:/root/elastic-apm-agent-1.11.0.jar   
-Delastic.apm.service\_name=my-cool-service -Delastic.apm.enable\_log\_correlation=true   
-Delastic.apm.application\_packages=org.example,org.another.example   
-Delastic.apm.server\_urls=http://localhost:8200 -jar target/dj-development-system-0.0.3-RELEASE.jar

I don't know how to reference "ecsjsonserializer"  
How can I solve this error?

LOG：  
—————————————————————  
2019-11-04 02:24:03.536 [apm-server-healthcheck] INFO co.elastic.apm.agent.report.ApmServerHealthChecker - Elastic APM server is available: { "build\_date": "2019-09-27T06:58:27Z", "build\_sha": "971d864356e4438bf4a799a1fa052cfd0ce680b4", "version": "7.4.0"}  
2019-11-04 02:24:03.635 [main] INFO co.elastic.apm.agent.configuration.StartupInfo - Starting Elastic APM 1.11.0 as my-cool-service on Java 11.0.5 (Oracle Corporation) Linux 3.10.0-862.el7.x86\_64  
2019-11-04 02:24:03.649 [apm-remote-config-poller] INFO co.elastic.apm.agent.configuration.ApmServerConfigurationSource - Received new configuration from APM Server: {transaction\_sample\_rate=1}  
Exception in thread "main" java.lang.reflect.InvocationTargetException  
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)  
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
at java.base/java.lang.reflect.Method.invoke(Method.java:566)  
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)  
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)  
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)  
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)  
Caused by: java.lang.NoClassDefFoundError: co/elastic/logging/EcsJsonSerializer  
at co.elastic.logging.log4j2.EcsLayout.(EcsLayout.java:97)  
at co.elastic.logging.log4j2.EcsLayout.(EcsLayout.java:63)  
at co.elastic.logging.log4j2.EcsLayout$Builder.build(EcsLayout.java:408)  
at co.elastic.logging.log4j2.EcsLayout$Builder.build(EcsLayout.java:324)  
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)  
at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:958)  
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:898)  
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:890)  
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:890)  
at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:513)  
at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:237)  
at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:249)  
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:545)  
at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:617)  
at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:634)  
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:229)  
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:153)  
at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)  
at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)  
at org.apache.commons.logging.LogFactory$Log4jLog.(LogFactory.java:199)  
at org.apache.commons.logging.LogFactory$Log4jDelegate.createLog(LogFactory.java:166)  
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:109)  
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:99)  
at org.springframework.boot.SpringApplication.(SpringApplication.java:189)  
at com.djcps.djfileserver.DjdevelopmentsysApplication.main(DjdevelopmentsysApplication.java:34)  
... 8 more  
Caused by: java.lang.ClassNotFoundException: co.elastic.logging.EcsJsonSerializer  
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)  
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)  
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:93)  
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)  
... 33 more

---

<div class="post-metadata">

**Author:** ![felixbarny](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/felixbarny/32/27341_2.png) [@felixbarny](https://discuss.elastic.co/u/felixbarny)\
**Post date:** [November 4, 2019, 8:06am UTC](https://discuss.elastic.co/t/how-to-use-ecs-logging-java/206348/2 "2019-11-04T08:06:38Z")

</div>

Make sure to include the transitive dependency ecs-logging-core when using manual dependency management.

---

<div class="post-metadata">

**Author:** ![wajika](https://avatars.discourse-cdn.com/v4/letter/w/977dab/32.png) [@wajika](https://discuss.elastic.co/u/wajika)\
**Post date:** [November 4, 2019, 8:30am UTC](https://discuss.elastic.co/t/how-to-use-ecs-logging-java/206348/3 "2019-11-04T08:30:24Z")

</div>

I compiled ecs-logging-java-0.1.2.tar.gz and generated three files.  
log4j-ecs-layout-0.1.2.jar  
log4j-ecs-layout-0.1.2-javadoc.jar  
log4j-ecs-layout-0.1.2-sources.jar

I've already referenced ‘log4j-ecs-layout-0.1.2.jar’ in the pom.xml file

---

<div class="post-metadata">

**Author:** ![wajika](https://avatars.discourse-cdn.com/v4/letter/w/977dab/32.png) [@wajika](https://discuss.elastic.co/u/wajika)\
**Post date:** [November 4, 2019, 8:31am UTC](https://discuss.elastic.co/t/how-to-use-ecs-logging-java/206348/4 "2019-11-04T08:31:47Z")

</div>

I've already referenced ‘log4j-ecs-layout-0.1.2.jar’ in the pom.xml file.  
But it doesn't work

---

<div class="post-metadata">

**Author:** ![wajika](https://avatars.discourse-cdn.com/v4/letter/w/977dab/32.png) [@wajika](https://discuss.elastic.co/u/wajika)\
**Post date:** [November 4, 2019, 9:08am UTC](https://discuss.elastic.co/t/how-to-use-ecs-logging-java/206348/5 "2019-11-04T09:08:40Z")

</div>

Sorry, I found out I made a mistake. I forgot to use the 'ECS logging core' package

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [November 25, 2019, 5:08am UTC](https://discuss.elastic.co/t/how-to-use-ecs-logging-java/206348/6 "2019-11-25T05:08:41Z")

</div>

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.
