diff --git a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/ElasticsearchReconciler.java b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/ElasticsearchReconciler.java
index 6ef43e5506d87d6b709d02d98b3b047f196c25b3..d9d42a1268a60a7e2008ba8c28f92ef75a42d6d1 100644
--- a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/ElasticsearchReconciler.java
+++ b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/ElasticsearchReconciler.java
@@ -1,7 +1,6 @@
 package de.ozgcloud.operator;
 
 import java.util.Base64;
-import java.util.logging.Level;
 
 import org.apache.commons.collections.MapUtils;
 import org.springframework.stereotype.Component;
@@ -14,9 +13,9 @@ import io.javaoperatorsdk.operator.api.reconciler.DeleteControl;
 import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
 import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
 import lombok.RequiredArgsConstructor;
-import lombok.extern.java.Log;
+import lombok.extern.log4j.Log4j2;
 
-@Log
+@Log4j2
 @RequiredArgsConstructor
 @ControllerConfiguration
 @Component
@@ -28,25 +27,22 @@ public class ElasticsearchReconciler implements Reconciler<OzgCloudElasticsearch
 	public UpdateControl<OzgCloudElasticsearchCustomResource> reconcile(OzgCloudElasticsearchCustomResource resource,
 			Context<OzgCloudElasticsearchCustomResource> context) {
 		try {
-			log.log(Level.INFO, "Reconcile user {0} ", resource.getCRDName());
+			LOG.info("{0}: Reconcile user", resource.getCRDName());
 			var namespace = resource.getMetadata().getNamespace();
 			var secret = service.getOrCreateCredentialSecret(resource, context);
 			service.createIndexIfMissing(namespace);
 			service.createSecurityRoleIfMissing(namespace);
 			service.createSecurityUserIfMissing(namespace, getPassword(secret));
 			service.createCertificateIfMissing(namespace);
-			log.log(Level.INFO, "Reconcile user {0} successful.", resource.getCRDName());
+			LOG.info("{0}: Reconcile user successful.", resource.getCRDName());
 			return OzgCloudElasticsearchUpdateControlBuilder.fromResource(resource).withStatus(CustomResourceStatus.OK).build();
 		} catch (Exception exception) {
-			log.log(Level.WARNING, "Reconcile user " + resource.getCRDName() + " failed.", exception);
+			LOG.warn(resource.getCRDName() + ": Reconcile user failed.", exception);
 			return buildExceptionUpdateControl(resource, exception);
 		}
 	}
 
 	String getPassword(Secret secret) {
-		log.info("get password for elastic user...");
-		log.info(String.format("from secret string map: %s", secret.getStringData()));
-		log.info(String.format("from secret data map: %s", secret.getData()));
 		return decode(MapUtils.getString(secret.getData(), OzgCloudElasticsearchSecretHelper.CREDENTIAL_SECRET_PASSWORD_FIELD));
 	}
 
@@ -77,7 +73,7 @@ public class ElasticsearchReconciler implements Reconciler<OzgCloudElasticsearch
 			service.deleteIndexIfExists(namespace);
 			return DeleteControl.defaultDelete();
 		} catch (Exception e) {
-			log.log(Level.INFO, String.format("Could not cleanup elasticsearch resource in namespace %s. %n %s", namespace, e));
+			LOG.warn(resource.getCRDName() + ": Could not cleanup elasticsearch resource.", e);
 			return DeleteControl.defaultDelete();
 		}
 	}
diff --git a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchService.java b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchService.java
index 6bd2873dbf0dd294d5b2c8723062312f708131c9..cc0a532ada6ad93ce775049769deb823715071ce 100644
--- a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchService.java
+++ b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchService.java
@@ -1,7 +1,6 @@
 package de.ozgcloud.operator;
 
 import java.util.Objects;
-import java.util.logging.Level;
 
 import org.apache.commons.collections.MapUtils;
 import org.springframework.stereotype.Component;
@@ -14,9 +13,9 @@ import io.fabric8.kubernetes.client.dsl.Resource;
 import io.fabric8.kubernetes.client.extension.ResourceAdapter;
 import io.javaoperatorsdk.operator.api.reconciler.Context;
 import lombok.RequiredArgsConstructor;
-import lombok.extern.java.Log;
+import lombok.extern.log4j.Log4j2;
 
-@Log
+@Log4j2
 @RequiredArgsConstructor
 @Component
 public class OzgCloudElasticsearchService {
@@ -30,19 +29,18 @@ public class OzgCloudElasticsearchService {
 
 	public Secret getOrCreateCredentialSecret(OzgCloudElasticsearchCustomResource resource, Context<OzgCloudElasticsearchCustomResource> context) {
 		try {
-			log.log(Level.INFO, "{0}: Get or create secret.", resource.getCRDName());
+			LOG.debug("{0}: Get or create secret.", resource.getCRDName());
 			var namespace = resource.getMetadata().getNamespace();
 			var secretResource = getCredentialsSecretResource(namespace);
 
 			if (Objects.isNull(secretResource.get())) {
-				log.log(Level.INFO, "{0}: Secret not exists, create one ...", resource.getCRDName());
+				LOG.info("{0}: Secret not exists, create one ...", resource.getCRDName());
 				createCredentialSecret(secretResource, namespace);
-				log.info("Secret creation successful.");
+				LOG.info("{0}: Secret creation successful.", resource.getCRDName());
 			}
-			log.info("secret...");
 			return secretResource.get();
 		} catch (Exception e) {
-			log.info("Secret creation failed: " + e);
+			LOG.warn(resource.getCRDName() + ": Secret creation failed: ", e);
 			throw e;
 		}
 	}
@@ -56,19 +54,17 @@ public class OzgCloudElasticsearchService {
 	}
 
 	public void createIndexIfMissing(String name) throws Exception {
-		log.info("Check index...");
+		LOG.debug("{0}: Check elasticsearch index...", name);
 		if (!remoteService.existsIndex(name)) {
 			remoteService.createIndex(name);
 		}
-		log.info("Check index successful.");
 	}
 
 	public void createSecurityRoleIfMissing(String roleName) throws Exception {
-		log.info("Check security role...");
+		LOG.debug("{0}: Check elasticsearch role...", roleName);
 		if (!remoteService.existsSecurityRole(roleName)) {
 			remoteService.createSecurityRole(buildPutRoleRequestData(roleName));
 		}
-		log.info("Check security role successful.");
 	}
 
 	PutRoleRequestData buildPutRoleRequestData(String roleName) {
@@ -80,11 +76,10 @@ public class OzgCloudElasticsearchService {
 	}
 
 	public void createSecurityUserIfMissing(String namespace, String password) throws Exception {
-		log.info("Check security user...");
+		LOG.debug("{0}: Check elasticsearch user...", namespace);
 		if (!remoteService.existsSecurityUser(namespace)) {
 			remoteService.createSecurityUser(buildPutUserRequestData(namespace, password));
 		}
-		log.info("Check security user successful.");
 	}
 
 	PutUserRequestData buildPutUserRequestData(String namespace, String password) {
@@ -92,42 +87,37 @@ public class OzgCloudElasticsearchService {
 	}
 
 	public void deleteSecurityUserIfExists(String userName) throws Exception {
-		log.info("Delete security user...");
+		LOG.debug("{0}: Check delete elasticsearch user...", userName);
 		if (remoteService.existsSecurityUser(userName)) {
 			remoteService.deleteSecurityUser(userName);
 		}
-		log.info("Delete security user successful.");
 	}
 
 	public void deleteSecurityRoleIfExists(String roleName) throws Exception {
-		log.info("Delete security role...");
+		LOG.debug("{0}: Check delete elasticsearch role...", roleName);
 		if (remoteService.existsSecurityRole(roleName)) {
 			remoteService.deleteSecurityRole(roleName);
 		}
-		log.info("Delete security role successful.");
 	}
 
 	public void deleteIndexIfExists(String indexName) throws Exception {
-		log.info("Delete index role...");
+		LOG.debug("{0}: Check delete elasticsearch index ...", indexName);
 		if (remoteService.existsIndex(indexName)) {
 			remoteService.deleteIndex(indexName);
 		}
-		log.info("Delete index role successful.");
 	}
 
 	public void createCertificateIfMissing(String namespace) {
 		try {
-			log.info("Create certificate secret if missing...");
+			LOG.debug("{0}: Create certificate secret if missing...", namespace);
 			var secretResource = kubernetesService.getSecretResource(namespace, properties.getCertificateSecretName());
 
 			if (Objects.isNull(secretResource.get())) {
-				log.info("create...");
+				LOG.info("{0}: Create certificate secret", namespace);
 				createCredentialSecret(namespace, secretResource);
-				log.info("create successful.");
 			}
 		} catch (Exception e) {
-			log.log(Level.SEVERE, "Certificate secret creation failed: " + e);
-			throw e;
+			throw new RuntimeException("Certificate secret creation failed " + namespace);
 		}
 	}