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 d9d42a1268a60a7e2008ba8c28f92ef75a42d6d1..80d6f4ee4ad709698af67a072fb839751d64dada 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
@@ -27,14 +27,14 @@ public class ElasticsearchReconciler implements Reconciler<OzgCloudElasticsearch
 	public UpdateControl<OzgCloudElasticsearchCustomResource> reconcile(OzgCloudElasticsearchCustomResource resource,
 			Context<OzgCloudElasticsearchCustomResource> context) {
 		try {
-			LOG.info("{0}: Reconcile user", resource.getCRDName());
+			LOG.info("{}: 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.info("{0}: Reconcile user successful.", resource.getCRDName());
+			LOG.info("{}: Reconcile user successful.", resource.getCRDName());
 			return OzgCloudElasticsearchUpdateControlBuilder.fromResource(resource).withStatus(CustomResourceStatus.OK).build();
 		} catch (Exception exception) {
 			LOG.warn(resource.getCRDName() + ": Reconcile user failed.", exception);
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 cc0a532ada6ad93ce775049769deb823715071ce..d5ce0f979511c5c1ea61b1d295370c7e53809660 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
@@ -29,14 +29,14 @@ public class OzgCloudElasticsearchService {
 
 	public Secret getOrCreateCredentialSecret(OzgCloudElasticsearchCustomResource resource, Context<OzgCloudElasticsearchCustomResource> context) {
 		try {
-			LOG.debug("{0}: Get or create secret.", resource.getCRDName());
+			LOG.debug("{}: Get or create secret.", resource.getCRDName());
 			var namespace = resource.getMetadata().getNamespace();
 			var secretResource = getCredentialsSecretResource(namespace);
 
 			if (Objects.isNull(secretResource.get())) {
-				LOG.info("{0}: Secret not exists, create one ...", resource.getCRDName());
+				LOG.info("{}: Secret not exists, create one ...", resource.getCRDName());
 				createCredentialSecret(secretResource, namespace);
-				LOG.info("{0}: Secret creation successful.", resource.getCRDName());
+				LOG.info("{}: Secret creation successful.", resource.getCRDName());
 			}
 			return secretResource.get();
 		} catch (Exception e) {
@@ -54,14 +54,14 @@ public class OzgCloudElasticsearchService {
 	}
 
 	public void createIndexIfMissing(String name) throws Exception {
-		LOG.debug("{0}: Check elasticsearch index...", name);
+		LOG.debug("{}: Check elasticsearch index...", name);
 		if (!remoteService.existsIndex(name)) {
 			remoteService.createIndex(name);
 		}
 	}
 
 	public void createSecurityRoleIfMissing(String roleName) throws Exception {
-		LOG.debug("{0}: Check elasticsearch role...", roleName);
+		LOG.debug("{}: Check elasticsearch role...", roleName);
 		if (!remoteService.existsSecurityRole(roleName)) {
 			remoteService.createSecurityRole(buildPutRoleRequestData(roleName));
 		}
@@ -76,7 +76,7 @@ public class OzgCloudElasticsearchService {
 	}
 
 	public void createSecurityUserIfMissing(String namespace, String password) throws Exception {
-		LOG.debug("{0}: Check elasticsearch user...", namespace);
+		LOG.debug("{}: Check elasticsearch user...", namespace);
 		if (!remoteService.existsSecurityUser(namespace)) {
 			remoteService.createSecurityUser(buildPutUserRequestData(namespace, password));
 		}
@@ -87,21 +87,21 @@ public class OzgCloudElasticsearchService {
 	}
 
 	public void deleteSecurityUserIfExists(String userName) throws Exception {
-		LOG.debug("{0}: Check delete elasticsearch user...", userName);
+		LOG.debug("{}: Check delete elasticsearch user...", userName);
 		if (remoteService.existsSecurityUser(userName)) {
 			remoteService.deleteSecurityUser(userName);
 		}
 	}
 
 	public void deleteSecurityRoleIfExists(String roleName) throws Exception {
-		LOG.debug("{0}: Check delete elasticsearch role...", roleName);
+		LOG.debug("{}: Check delete elasticsearch role...", roleName);
 		if (remoteService.existsSecurityRole(roleName)) {
 			remoteService.deleteSecurityRole(roleName);
 		}
 	}
 
 	public void deleteIndexIfExists(String indexName) throws Exception {
-		LOG.debug("{0}: Check delete elasticsearch index ...", indexName);
+		LOG.debug("{}: Check delete elasticsearch index ...", indexName);
 		if (remoteService.existsIndex(indexName)) {
 			remoteService.deleteIndex(indexName);
 		}
@@ -109,11 +109,11 @@ public class OzgCloudElasticsearchService {
 
 	public void createCertificateIfMissing(String namespace) {
 		try {
-			LOG.debug("{0}: Create certificate secret if missing...", namespace);
+			LOG.debug("{}: Create certificate secret if missing...", namespace);
 			var secretResource = kubernetesService.getSecretResource(namespace, properties.getCertificateSecretName());
 
 			if (Objects.isNull(secretResource.get())) {
-				LOG.info("{0}: Create certificate secret", namespace);
+				LOG.info("{}: Create certificate secret", namespace);
 				createCredentialSecret(namespace, secretResource);
 			}
 		} catch (Exception e) {
diff --git a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchClientConfiguration.java b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchClientConfiguration.java
index 0e8d8d826380b7299d7a1b8a81bbb9558ca2aab0..aa25d5e3454e672c0d6f7fee59472a714f546d0d 100644
--- a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchClientConfiguration.java
+++ b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchClientConfiguration.java
@@ -19,9 +19,9 @@ import co.elastic.clients.transport.rest_client.RestClientTransport;
 import de.ozgcloud.operator.OzgCloudElasticsearchProperties;
 import de.ozgcloud.operator.common.kubernetes.KubernetesRemoteService;
 import io.fabric8.kubernetes.api.model.Secret;
-import lombok.extern.java.Log;
+import lombok.extern.log4j.Log4j2;
 
-@Log
+@Log4j2
 @Configuration
 public class ElasticsearchClientConfiguration {
 
@@ -33,7 +33,7 @@ public class ElasticsearchClientConfiguration {
 	@Bean
 	@Scope("singleton")
 	ElasticsearchClient createElasticsearchClient() {
-		log.info("Create elasticsearch client...");
+		LOG.info("Create elasticsearch client...");
 		var credentialsProvider = createCredentialsProvider(elasticSearchProperties.getServer().getSecretDataKey(), getPassword());
 		var restClient = buildRestClient(credentialsProvider);
 		var transport = createRestClientTransport(restClient);
@@ -43,7 +43,6 @@ public class ElasticsearchClientConfiguration {
 	private BasicCredentialsProvider createCredentialsProvider(String userName, String password) {
 		var credentialsProvider = new BasicCredentialsProvider();
 		credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(userName, password));
-		log.info(String.format("use credentials: username: %s, password: %s", userName, password));
 		return credentialsProvider;
 	}
 
@@ -54,8 +53,10 @@ public class ElasticsearchClientConfiguration {
 	}
 
 	private HttpHost createHttpHost() {
-		log.info(String.format("use host: %s with port: %s and scheme: %s", elasticSearchProperties.getServer().getHost(), elasticSearchProperties.getServer().getPort(), elasticSearchProperties.getServer().getScheme()));
-		return new HttpHost(elasticSearchProperties.getServer().getHost(), elasticSearchProperties.getServer().getPort(), elasticSearchProperties.getServer().getScheme());
+		LOG.info(String.format("ElasticSearch config: host: %s with port: %s and scheme: %s", elasticSearchProperties.getServer().getHost(),
+				elasticSearchProperties.getServer().getPort(), elasticSearchProperties.getServer().getScheme()));
+		return new HttpHost(elasticSearchProperties.getServer().getHost(), elasticSearchProperties.getServer().getPort(),
+				elasticSearchProperties.getServer().getScheme());
 	}
 
 	private RestClientTransport createRestClientTransport(RestClient restClient) {
@@ -63,23 +64,23 @@ public class ElasticsearchClientConfiguration {
 	}
 
 	String getPassword() {
-		log.info(String.format("get password from secret: %s in namespace %s", elasticSearchProperties.getServer().getSecretName(), elasticSearchProperties.getServer().getNamespace()));
+		LOG.debug(String.format("get password from secret: %s in namespace %s", elasticSearchProperties.getServer().getSecretName(),
+				elasticSearchProperties.getServer().getNamespace()));
 		var secret = getCredentialsSecret();
-		log.info(String.format("secret data: %s", secret.getData()));
 		var password = getPasswordFromSecret(secret);
-		log.info(String.format("used password: %s", password));
 		return password;
 	}
-	
+
 	private Secret getCredentialsSecret() {
-		return kubernetesService.getSecretResource(elasticSearchProperties.getServer().getNamespace(), elasticSearchProperties.getServer().getSecretName()).get();
+		return kubernetesService
+				.getSecretResource(elasticSearchProperties.getServer().getNamespace(), elasticSearchProperties.getServer().getSecretName()).get();
 	}
-	
+
 	private String getPasswordFromSecret(Secret secret) {
-		var encodedPassword =  MapUtils.getString(secret.getData(), elasticSearchProperties.getServer().getSecretDataKey());
+		var encodedPassword = MapUtils.getString(secret.getData(), elasticSearchProperties.getServer().getSecretDataKey());
 		return decode(encodedPassword, secret);
 	}
-	
+
 	private String decode(String encodedPassword, Secret secret) {
 		return new String(Base64.getDecoder().decode(encodedPassword));
 	}
diff --git a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchRemoteService.java b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchRemoteService.java
index 9cb768d1fe166a937f82bb812d455a3fb4728bb0..cb28b3edef67c355f6505099d744c21e8eeb0a03 100644
--- a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchRemoteService.java
+++ b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/common/elasticsearch/ElasticsearchRemoteService.java
@@ -1,7 +1,6 @@
 package de.ozgcloud.operator.common.elasticsearch;
 
 import java.io.IOException;
-import java.util.logging.Level;
 
 import org.springframework.stereotype.Component;
 
@@ -13,128 +12,121 @@ import co.elastic.clients.elasticsearch.security.PutUserRequest;
 import de.ozgcloud.operator.PutRoleRequestData;
 import de.ozgcloud.operator.PutUserRequestData;
 import lombok.RequiredArgsConstructor;
-import lombok.extern.java.Log;
+import lombok.extern.log4j.Log4j2;
 
-@Log
+@Log4j2
 @RequiredArgsConstructor
 @Component
 public class ElasticsearchRemoteService {
-	
+
 	private final ElasticsearchClient client;
-	
+
 	public boolean existsIndex(String index) throws Exception {
 		try {
-			log.info("Exists index " + index + "...");
+			LOG.debug("Test if elasticsearch index {} exits.", index);
 			var exists = client.indices().exists(builder -> builder.index(index)).value();
-			log.info("Exists index: " + exists);
+			LOG.debug("Elasticsearch index exists: {}", exists);
 			return exists;
 		} catch (ElasticsearchException | IOException e) {
-			log.log(Level.SEVERE, "Error checking index '" + index + "': " + e);
-			throw e;
+			throw new RuntimeException("Error checking index '" + index, e);
 		}
 	}
-	
+
 	public void createIndex(String indexName) throws Exception {
 		try {
-			log.info("Create index " + indexName + "...");
+			LOG.info("Create elasticsearch index {}", indexName);
 			client.indices().create(builder -> builder.index(indexName));
-			log.info("Create index successful.");
-		} catch(Exception e) {
-			log.log(Level.SEVERE, "Create index failed." + e);
-			throw e;
+			LOG.info("Create elasticsearch index {} successful", indexName);
+		} catch (Exception e) {
+			throw new RuntimeException("Create elasticsearch index " + indexName + "failed.", e);
 		}
 	}
-	
+
 	public boolean existsSecurityRole(String roleName) throws Exception {
 		return !client.security().getRole(builder -> builder.name(roleName)).result().isEmpty();
 	}
-	
+
 	public void createSecurityRole(PutRoleRequestData requestData) throws Exception {
 		try {
-			log.info("Create SecurityRole " + requestData.getName() + "...");
+			LOG.info("Create elasticsearch role {}", requestData.getName());
 			client.security().putRole(createPutRoleRequest(requestData));
-			log.info("Create SecurityRole successful.");
-		} catch(Exception e) {
-			log.log(Level.SEVERE, "Create SecurityRole failed." + e);
-			throw e;
+			LOG.info("Create elasticsearch role {} successful", requestData.getName());
+		} catch (Exception e) {
+			throw new RuntimeException("Create elasticsearch role " + requestData.getName() + "failed.", e);
 		}
 	}
-	
+
 	PutRoleRequest createPutRoleRequest(PutRoleRequestData requestData) {
 		return PutRoleRequest.of(requestBuilder -> buildRequest(requestBuilder, requestData));
 	}
-	
+
 	private PutRoleRequest.Builder buildRequest(PutRoleRequest.Builder requestBuilder, PutRoleRequestData requestData) {
 		requestBuilder.name(requestData.getName());
 		requestBuilder.indices(builder -> buildIndicesPrivilegesRequest(builder, requestData));
-		
+
 		return requestBuilder;
 	}
-	
+
 	private IndicesPrivileges.Builder buildIndicesPrivilegesRequest(IndicesPrivileges.Builder builder, PutRoleRequestData requestData) {
 		builder.names(requestData.getIndivesPrivilegesData().getNames());
 		builder.privileges(requestData.getIndivesPrivilegesData().getPrivileges());
-		
+
 		return builder;
 	}
-		
+
 	public boolean existsSecurityUser(String userName) throws Exception {
 		return !client.security().getUser(builder -> builder.username(userName)).result().isEmpty();
 	}
-	
+
 	public void createSecurityUser(PutUserRequestData requestData) throws Exception {
 		try {
-			log.info("Create SecurityUser " + requestData.getUsername() + "...");
+			LOG.info("Create elasticsearch user {}", requestData.getUsername());
 			client.security().putUser(createPutUserRequest(requestData));
-			log.info("Create SecurityUser successful.");
-		} catch(Exception e) {
-			log.log(Level.SEVERE, "Create SecurityUser failed." + e);
-			throw e;
+			LOG.info("Create elasticsearch user {} successful", requestData.getUsername());
+		} catch (Exception e) {
+			throw new RuntimeException("Create elasticsearch user " + requestData.getUsername() + "failed.", e);
 		}
 	}
-	
+
 	PutUserRequest createPutUserRequest(PutUserRequestData requestData) {
 		return PutUserRequest.of(requestBuilder -> buildPutUserRequest(requestBuilder, requestData));
 	}
-	
+
 	private PutUserRequest.Builder buildPutUserRequest(PutUserRequest.Builder builder, PutUserRequestData requestData) {
 		builder.username(requestData.getUsername());
 		builder.roles(requestData.getRoles());
 		builder.password(requestData.getPassword());
-		
+
 		return builder;
 	}
-	
+
 	public void deleteIndex(String indexName) throws Exception {
 		try {
-			log.info("Delete index " + indexName + "...");
+			LOG.info("Delete elasticsearch index {}", indexName);
 			client.indices().delete(builder -> builder.index(indexName));
-			log.info("Delete index successful.");
-		} catch(Exception e) {
-			log.log(Level.SEVERE, "Delete index failed." + e);
-			throw e;
+			LOG.info("Delete elasticsearch index {} successful", indexName);
+		} catch (Exception e) {
+			throw new RuntimeException("Delete elasticsearch index " + indexName + "failed.", e);
 		}
 	}
-	
+
 	public void deleteSecurityRole(String roleName) throws Exception {
 		try {
-			log.info("Delete security role " + roleName + "...");
+			LOG.info("Delete elasticsearch role {}", roleName);
 			client.security().deleteRole(builder -> builder.name(roleName));
-			log.info("Delete security role successful.");
-		} catch(Exception e) {
-			log.log(Level.SEVERE, "Delete security role failed." + e);
-			throw e;
+			LOG.info("Delete elasticsearch role {} successful", roleName);
+		} catch (Exception e) {
+			throw new RuntimeException("Delete elasticsearch role " + roleName + "failed.", e);
 		}
 	}
-	
+
 	public void deleteSecurityUser(String userName) throws Exception {
 		try {
-			log.info("Delete security user " + userName + "...");
+			LOG.info("Delete elasticsearch user {}", userName);
 			client.security().deleteUser(builder -> builder.username(userName));
-			log.info("Delete security user successful.");
-		} catch(Exception e) {
-			log.log(Level.SEVERE, "Delete security user failed." + e);
-			throw e;
+			LOG.info("Delete elasticsearch user {} successful", userName);
+		} catch (Exception e) {
+			throw new RuntimeException("Delete elasticsearch user " + userName + "failed.", e);
 		}
 	}
 }
\ No newline at end of file