From 71069778e13598937c5046586ef6758be5e9ec61 Mon Sep 17 00:00:00 2001
From: Lars Johansson <lars.johansson@ess.eu>
Date: Wed, 29 Jun 2022 17:30:58 +0200
Subject: [PATCH] Change log handling to a service

Change log handling to a service.
Add log configuration.
---
 .../rest/controller/NamesController.java      | 119 ++++++------
 .../rest/controller/StructuresController.java | 173 +++++++++---------
 .../LogUtil.java => service/LogService.java}  |  34 ++--
 .../resources/application-docker.properties   |   8 +-
 src/main/resources/application.properties     |   8 +-
 5 files changed, 176 insertions(+), 166 deletions(-)
 rename src/main/java/org/openepics/names/{util/LogUtil.java => service/LogService.java} (75%)

diff --git a/src/main/java/org/openepics/names/rest/controller/NamesController.java b/src/main/java/org/openepics/names/rest/controller/NamesController.java
index 90673b59..c6853581 100644
--- a/src/main/java/org/openepics/names/rest/controller/NamesController.java
+++ b/src/main/java/org/openepics/names/rest/controller/NamesController.java
@@ -31,10 +31,10 @@ import org.openepics.names.rest.beans.response.Response;
 import org.openepics.names.rest.beans.response.ResponseBoolean;
 import org.openepics.names.rest.beans.response.ResponseBooleanList;
 import org.openepics.names.rest.beans.response.ResponsePageNameElements;
+import org.openepics.names.service.LogService;
 import org.openepics.names.service.NamesService;
 import org.openepics.names.service.exception.ServiceException;
 import org.openepics.names.util.ExcelUtil;
-import org.openepics.names.util.LogUtil;
 import org.openepics.names.util.TextUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
@@ -65,11 +65,14 @@ public class NamesController implements INames {
 
     private static final String ATTACHMENT_FILENAME_NAME_ELEMENT_XLSX = "attachment; filename=NameElement.xlsx";
 
+    private LogService logService;
     private NamesService namesService;
 
     @Autowired
     public NamesController(
+            LogService logUtil,
             NamesService namesService) {
+        this.logService = logUtil;
         this.namesService = namesService;
     }
 
@@ -84,11 +87,11 @@ public class NamesController implements INames {
             namesService.validateNamesCreate(nameElements);
             return new ResponseEntity<>(namesService.createNames(nameElements), Response.getHeaderJson(), HttpStatus.CREATED);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -114,14 +117,14 @@ public class NamesController implements INames {
                  throw new ServiceException(TextUtil.FILE_COULD_NOT_BE_PARSED, null, null, null);
              }
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (IOException e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw new ServiceException(TextUtil.FILE_COULD_NOT_BE_PARSED, e.getMessage(), null, e);
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -137,11 +140,11 @@ public class NamesController implements INames {
                     deleted, queryFields, queryValues,
                     orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -164,11 +167,11 @@ public class NamesController implements INames {
         try {
             return namesService.readNames(name, orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -180,11 +183,11 @@ public class NamesController implements INames {
         try {
             return namesService.readNamesSystemStructure(mnemonicpath, orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -196,11 +199,11 @@ public class NamesController implements INames {
         try {
             return namesService.readNamesDeviceStructure(mnemonicpath, orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -212,11 +215,11 @@ public class NamesController implements INames {
         try {
             return namesService.readNamesHistory(uuid, orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -228,11 +231,11 @@ public class NamesController implements INames {
         try {
             return namesService.equivalenceName(name);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -242,11 +245,11 @@ public class NamesController implements INames {
         try {
             return new ResponseEntity<>(new ResponseBoolean(namesService.existsName(name)), Response.getHeaderJson(), HttpStatus.OK);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             return new ResponseEntity<>(new ResponseBoolean(Boolean.FALSE, e.getMessage(), e.getDetails(), e.getField()), Response.getHeaderJson(), HttpStatus.OK);
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             return new ResponseEntity<>(new ResponseBoolean(Boolean.FALSE, TextUtil.OPERATION_COULD_NOT_BE_PERFORMED), Response.getHeaderJson(), HttpStatus.OK);
         }
     }
@@ -256,11 +259,11 @@ public class NamesController implements INames {
         try {
             return new ResponseEntity<>(new ResponseBoolean(namesService.isLegacyName(name)), Response.getHeaderJson(), HttpStatus.OK);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             return new ResponseEntity<>(new ResponseBoolean(Boolean.FALSE, e.getMessage(), e.getDetails(), e.getField()), Response.getHeaderJson(), HttpStatus.OK);
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             return new ResponseEntity<>(new ResponseBoolean(Boolean.FALSE, TextUtil.OPERATION_COULD_NOT_BE_PERFORMED), Response.getHeaderJson(), HttpStatus.OK);
         }
     }
@@ -270,11 +273,11 @@ public class NamesController implements INames {
         try {
             return new ResponseEntity<>(new ResponseBoolean(namesService.isValidToCreateName(name)), Response.getHeaderJson(), HttpStatus.OK);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             return new ResponseEntity<>(new ResponseBoolean(Boolean.FALSE, e.getMessage(), e.getDetails(), e.getField()), Response.getHeaderJson(), HttpStatus.OK);
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             return new ResponseEntity<>(new ResponseBoolean(Boolean.FALSE, TextUtil.OPERATION_COULD_NOT_BE_PERFORMED), Response.getHeaderJson(), HttpStatus.OK);
         }
     }
@@ -291,15 +294,15 @@ public class NamesController implements INames {
                 namesService.validateNamesCreate(nameElement);
                 responses.add(new ResponseBoolean(Boolean.TRUE));
             } catch (ServiceException e) {
-                LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-                LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+                logService.logServiceException(LOGGER, Level.WARNING, e);
+                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
                 if (response) {
                     response = false;
                     reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
                 }
                 responses.add(new ResponseBoolean(Boolean.FALSE, e.getMessage(), e.getDetails(), e.getField()));
             } catch (Exception e) {
-                LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
                 if (response) {
                     response = false;
                     reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
@@ -320,15 +323,15 @@ public class NamesController implements INames {
                 namesService.validateNamesUpdate(nameElement);
                 responses.add(new ResponseBoolean(Boolean.TRUE));
             } catch (ServiceException e) {
-                LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-                LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+                logService.logServiceException(LOGGER, Level.WARNING, e);
+                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
                 if (response) {
                     response = false;
                     reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
                 }
                 responses.add(new ResponseBoolean(Boolean.FALSE, e.getMessage(), e.getDetails(), e.getField()));
             } catch (Exception e) {
-                LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
                 if (response) {
                     response = false;
                     reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
@@ -349,15 +352,15 @@ public class NamesController implements INames {
                 namesService.validateNamesDelete(nameElement);
                 responses.add(new ResponseBoolean(Boolean.TRUE));
             } catch (ServiceException e) {
-                LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-                LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+                logService.logServiceException(LOGGER, Level.WARNING, e);
+                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
                 if (response) {
                     response = false;
                     reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
                 }
                 responses.add(new ResponseBoolean(Boolean.FALSE, e.getMessage(), e.getDetails(), e.getField()));
             } catch (Exception e) {
-                LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
                 if (response) {
                     response = false;
                     reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
@@ -381,11 +384,11 @@ public class NamesController implements INames {
             namesService.validateNamesUpdate(nameElements);
             return namesService.updateNames(nameElements);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -411,14 +414,14 @@ public class NamesController implements INames {
                 throw new ServiceException(TextUtil.FILE_COULD_NOT_BE_PARSED, null, null, null);
             }
        } catch (ServiceException e) {
-           LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-           LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+           logService.logServiceException(LOGGER, Level.WARNING, e);
+           logService.logStackTraceElements(LOGGER, Level.WARNING, e);
            throw e;
        } catch (IOException e) {
-           LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+           logService.logStackTraceElements(LOGGER, Level.WARNING, e);
            throw new ServiceException(TextUtil.FILE_COULD_NOT_BE_PARSED, e.getMessage(), null, e);
        } catch (Exception e) {
-           LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+           logService.logStackTraceElements(LOGGER, Level.WARNING, e);
            throw e;
        }
     }
@@ -436,11 +439,11 @@ public class NamesController implements INames {
           namesService.validateNamesDelete(nameElements);
           return namesService.deleteNames(nameElements);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -466,14 +469,14 @@ public class NamesController implements INames {
                 throw new ServiceException(TextUtil.FILE_COULD_NOT_BE_PARSED, null, null, null);
             }
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (IOException e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw new ServiceException(TextUtil.FILE_COULD_NOT_BE_PARSED, e.getMessage(), null, e);
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
diff --git a/src/main/java/org/openepics/names/rest/controller/StructuresController.java b/src/main/java/org/openepics/names/rest/controller/StructuresController.java
index 1f7e284f..afb6d327 100644
--- a/src/main/java/org/openepics/names/rest/controller/StructuresController.java
+++ b/src/main/java/org/openepics/names/rest/controller/StructuresController.java
@@ -33,10 +33,10 @@ import org.openepics.names.rest.beans.response.Response;
 import org.openepics.names.rest.beans.response.ResponseBoolean;
 import org.openepics.names.rest.beans.response.ResponseBooleanList;
 import org.openepics.names.rest.beans.response.ResponsePageStructureElements;
+import org.openepics.names.service.LogService;
 import org.openepics.names.service.StructuresService;
 import org.openepics.names.service.exception.ServiceException;
 import org.openepics.names.util.ExcelUtil;
-import org.openepics.names.util.LogUtil;
 import org.openepics.names.util.TextUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
@@ -74,11 +74,14 @@ public class StructuresController implements IStructures {
 
     private static final String ATTACHMENT_FILENAME_STRUCTURE_ELEMENT_XLSX = "attachment; filename=StructureElement.xlsx";
 
+    private LogService logService;
     private StructuresService structuresService;
 
     @Autowired
     public StructuresController(
+            LogService logUtil,
             StructuresService structuresService) {
+        this.logService = logUtil;
         this.structuresService = structuresService;
     }
 
@@ -93,11 +96,11 @@ public class StructuresController implements IStructures {
             structuresService.validateStructuresCreate(structureElements);
             return new ResponseEntity<>(structuresService.createStructures(structureElements), Response.getHeaderJson(), HttpStatus.CREATED);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -123,14 +126,14 @@ public class StructuresController implements IStructures {
                 throw new ServiceException(TextUtil.FILE_COULD_NOT_BE_PARSED, null, null, null);
             }
        } catch (ServiceException e) {
-           LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-           LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+           logService.logServiceException(LOGGER, Level.WARNING, e);
+           logService.logStackTraceElements(LOGGER, Level.WARNING, e);
            throw e;
        } catch (IOException e) {
-           LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+           logService.logStackTraceElements(LOGGER, Level.WARNING, e);
            throw new ServiceException(TextUtil.FILE_COULD_NOT_BE_PARSED, e.getMessage(), null, e);
        } catch (Exception e) {
-           LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+           logService.logStackTraceElements(LOGGER, Level.WARNING, e);
            throw e;
        }
     }
@@ -146,11 +149,11 @@ public class StructuresController implements IStructures {
                     type, statuses, deleted, queryFields, queryValues,
                     orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -176,11 +179,11 @@ public class StructuresController implements IStructures {
                     type, uuid,
                     orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -192,11 +195,11 @@ public class StructuresController implements IStructures {
         try {
             return structuresService.readStructuresMnemonic(mnemonic, orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -208,11 +211,11 @@ public class StructuresController implements IStructures {
         try {
             return structuresService.readStructuresMnemonicpath(mnemonicpath, orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -226,11 +229,11 @@ public class StructuresController implements IStructures {
                     uuid, type,
                     orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -242,11 +245,11 @@ public class StructuresController implements IStructures {
         try {
             return structuresService.equivalenceMnemonic(mnemonic);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -256,11 +259,11 @@ public class StructuresController implements IStructures {
         try {
             return new ResponseEntity<>(new ResponseBoolean(structuresService.existsStructure(type, mnemonicpath)), Response.getHeaderJson(), HttpStatus.OK);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             return new ResponseEntity<>(new ResponseBoolean(Boolean.FALSE, e.getMessage(), e.getDetails(), e.getField()), Response.getHeaderJson(), HttpStatus.OK);
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             return new ResponseEntity<>(new ResponseBoolean(Boolean.FALSE, TextUtil.OPERATION_COULD_NOT_BE_PERFORMED), Response.getHeaderJson(), HttpStatus.OK);
         }
     }
@@ -270,11 +273,11 @@ public class StructuresController implements IStructures {
         try {
             return new ResponseEntity<>(new ResponseBoolean(structuresService.isValidToCreateStructure(type, mnemonicpath)), Response.getHeaderJson(), HttpStatus.OK);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             return new ResponseEntity<>(new ResponseBoolean(Boolean.FALSE, e.getMessage(), e.getDetails(), e.getField()), Response.getHeaderJson(), HttpStatus.OK);
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             return new ResponseEntity<>(new ResponseBoolean(Boolean.FALSE, TextUtil.OPERATION_COULD_NOT_BE_PERFORMED), Response.getHeaderJson(), HttpStatus.OK);
         }
     }
@@ -291,15 +294,15 @@ public class StructuresController implements IStructures {
                 structuresService.validateStructuresCreate(structureElement);
                 responses.add(new ResponseBoolean(Boolean.TRUE));
             } catch (ServiceException e) {
-                LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-                LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+                logService.logServiceException(LOGGER, Level.WARNING, e);
+                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
                 if (response) {
                     response = false;
                     reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
                 }
                 responses.add(new ResponseBoolean(Boolean.FALSE, e.getMessage(), e.getDetails(), e.getField()));
             } catch (Exception e) {
-                LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
                 if (response) {
                     response = false;
                     reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
@@ -320,15 +323,15 @@ public class StructuresController implements IStructures {
                 structuresService.validateStructuresUpdate(structureElement);
                 responses.add(new ResponseBoolean(Boolean.TRUE));
             } catch (ServiceException e) {
-                LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-                LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+                logService.logServiceException(LOGGER, Level.WARNING, e);
+                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
                 if (response) {
                     response = false;
                     reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
                 }
                 responses.add(new ResponseBoolean(Boolean.FALSE, e.getMessage(), e.getDetails(), e.getField()));
             } catch (Exception e) {
-                LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
                 if (response) {
                     response = false;
                     reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
@@ -349,15 +352,15 @@ public class StructuresController implements IStructures {
                 structuresService.validateStructuresDelete(structureElement);
                 responses.add(new ResponseBoolean(Boolean.TRUE));
             } catch (ServiceException e) {
-                LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-                LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+                logService.logServiceException(LOGGER, Level.WARNING, e);
+                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
                 if (response) {
                     response = false;
                     reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
                 }
                 responses.add(new ResponseBoolean(Boolean.FALSE, e.getMessage(), e.getDetails(), e.getField()));
             } catch (Exception e) {
-                LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
                 if (response) {
                     response = false;
                     reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
@@ -378,15 +381,15 @@ public class StructuresController implements IStructures {
                 structuresService.validateStructuresApprove(structureElement);
                 responses.add(new ResponseBoolean(Boolean.TRUE));
             } catch (ServiceException e) {
-                LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-                LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+                logService.logServiceException(LOGGER, Level.WARNING, e);
+                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
                 if (response) {
                     response = false;
                     reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
                 }
                 responses.add(new ResponseBoolean(Boolean.FALSE, e.getMessage(), e.getDetails(), e.getField()));
             } catch (Exception e) {
-                LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
                 if (response) {
                     response = false;
                     reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
@@ -407,15 +410,15 @@ public class StructuresController implements IStructures {
                 structuresService.validateStructuresCancel(structureElement);
                 responses.add(new ResponseBoolean(Boolean.TRUE));
             } catch (ServiceException e) {
-                LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-                LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+                logService.logServiceException(LOGGER, Level.WARNING, e);
+                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
                 if (response) {
                     response = false;
                     reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
                 }
                 responses.add(new ResponseBoolean(Boolean.FALSE, e.getMessage(), e.getDetails(), e.getField()));
             } catch (Exception e) {
-                LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
                 if (response) {
                     response = false;
                     reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
@@ -436,15 +439,15 @@ public class StructuresController implements IStructures {
                 structuresService.validateStructuresReject(structureElement);
                 responses.add(new ResponseBoolean(Boolean.TRUE));
             } catch (ServiceException e) {
-                LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-                LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+                logService.logServiceException(LOGGER, Level.WARNING, e);
+                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
                 if (response) {
                     response = false;
                     reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
                 }
                 responses.add(new ResponseBoolean(Boolean.FALSE, e.getMessage(), e.getDetails(), e.getField()));
             } catch (Exception e) {
-                LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+                logService.logStackTraceElements(LOGGER, Level.WARNING, e);
                 if (response) {
                     response = false;
                     reason = TextUtil.ONE_OR_MORE_ELEMENTS_ARE_NOT_CORRECT;
@@ -463,11 +466,11 @@ public class StructuresController implements IStructures {
             structuresService.validateStructuresUpdate(structureElements);
             return structuresService.updateStructures(structureElements);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -488,14 +491,14 @@ public class StructuresController implements IStructures {
                 throw new ServiceException(TextUtil.FILE_COULD_NOT_BE_PARSED, null, null, null);
             }
        } catch (ServiceException e) {
-           LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-           LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+           logService.logServiceException(LOGGER, Level.WARNING, e);
+           logService.logStackTraceElements(LOGGER, Level.WARNING, e);
            throw e;
        } catch (IOException e) {
-           LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+           logService.logStackTraceElements(LOGGER, Level.WARNING, e);
            throw new ServiceException(TextUtil.FILE_COULD_NOT_BE_PARSED, e.getMessage(), null, e);
        } catch (Exception e) {
-           LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+           logService.logStackTraceElements(LOGGER, Level.WARNING, e);
            throw e;
        }
     }
@@ -508,11 +511,11 @@ public class StructuresController implements IStructures {
             structuresService.validateStructuresDelete(structureElements);
             return structuresService.deleteStructures(structureElements);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -533,14 +536,14 @@ public class StructuresController implements IStructures {
                 throw new ServiceException(TextUtil.FILE_COULD_NOT_BE_PARSED, null, null, null);
             }
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (IOException e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw new ServiceException(TextUtil.FILE_COULD_NOT_BE_PARSED, e.getMessage(), null, e);
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -553,11 +556,11 @@ public class StructuresController implements IStructures {
             structuresService.validateStructuresApprove(structureElements);
             return structuresService.approveStructures(structureElements);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -578,14 +581,14 @@ public class StructuresController implements IStructures {
                 throw new ServiceException(TextUtil.FILE_COULD_NOT_BE_PARSED, null, null, null);
             }
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (IOException e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw new ServiceException(TextUtil.FILE_COULD_NOT_BE_PARSED, e.getMessage(), null, e);
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -596,11 +599,11 @@ public class StructuresController implements IStructures {
             structuresService.validateStructuresCancel(structureElements);
             return structuresService.cancelStructures(structureElements);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -621,14 +624,14 @@ public class StructuresController implements IStructures {
                 throw new ServiceException(TextUtil.FILE_COULD_NOT_BE_PARSED, null, null, null);
             }
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (IOException e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw new ServiceException(TextUtil.FILE_COULD_NOT_BE_PARSED, e.getMessage(), null, e);
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -639,11 +642,11 @@ public class StructuresController implements IStructures {
             structuresService.validateStructuresReject(structureElements);
             return structuresService.rejectStructures(structureElements);
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
@@ -664,14 +667,14 @@ public class StructuresController implements IStructures {
                 throw new ServiceException(TextUtil.FILE_COULD_NOT_BE_PARSED, null, null, null);
             }
         } catch (ServiceException e) {
-            LogUtil.logServiceException(LOGGER, Level.WARNING, e);
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logServiceException(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         } catch (IOException e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw new ServiceException(TextUtil.FILE_COULD_NOT_BE_PARSED, e.getMessage(), null, e);
         } catch (Exception e) {
-            LogUtil.logStackTraceElements(LOGGER, Level.WARNING, e);
+            logService.logStackTraceElements(LOGGER, Level.WARNING, e);
             throw e;
         }
     }
diff --git a/src/main/java/org/openepics/names/util/LogUtil.java b/src/main/java/org/openepics/names/service/LogService.java
similarity index 75%
rename from src/main/java/org/openepics/names/util/LogUtil.java
rename to src/main/java/org/openepics/names/service/LogService.java
index 57b2da35..877e3adb 100644
--- a/src/main/java/org/openepics/names/util/LogUtil.java
+++ b/src/main/java/org/openepics/names/service/LogService.java
@@ -16,29 +16,33 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  */
 
-package org.openepics.names.util;
+package org.openepics.names.service;
 
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import org.apache.commons.lang3.StringUtils;
 import org.openepics.names.service.exception.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
 
 /**
  * Utility class to assist in handling of logs.
  *
  * @author Lars Johansson
  */
-public class LogUtil {
+@Service
+public class LogService {
 
     private static final String ORG_OPENEPICS_NAMES                     = "org.openepics.names";
     private static final String ORG_OPENEPICS_NAMES_UTIL_EXCEPTION_UTIL = "org.openepics.names.util.ExceptionUtil";
 
-    /**
-     * This class is not to be instantiated.
-     */
-    private LogUtil() {
-        throw new IllegalStateException("Utility class");
+    private int logStackTraceLength;
+
+    @Autowired
+    protected LogService(@Value("${logutil.stacktrace.length:10}") int logStackTraceLength) {
+        this.logStackTraceLength = logStackTraceLength;
     }
 
     /**
@@ -48,7 +52,7 @@ public class LogUtil {
      * @param level log level
      * @param e service exception
      */
-    public static void logServiceException(Logger logger, Level level, ServiceException e) {
+    public void logServiceException(Logger logger, Level level, ServiceException e) {
         if (logger == null || level == null || e == null) {
             return;
         }
@@ -74,8 +78,8 @@ public class LogUtil {
      * @param level log level
      * @param e service exception
      */
-    public static void logStackTraceElements(Logger logger, Level level, ServiceException e) {
-        logStackTraceElements(logger, level, e, 10, ORG_OPENEPICS_NAMES, ORG_OPENEPICS_NAMES_UTIL_EXCEPTION_UTIL);
+    public void logStackTraceElements(Logger logger, Level level, ServiceException e) {
+        logStackTraceElements(logger, level, e, logStackTraceLength, ORG_OPENEPICS_NAMES, ORG_OPENEPICS_NAMES_UTIL_EXCEPTION_UTIL);
     }
 
     /**
@@ -85,8 +89,8 @@ public class LogUtil {
      * @param level log level
      * @param e exception
      */
-    public static void logStackTraceElements(Logger logger, Level level, Exception e) {
-        logStackTraceElements(logger, level, e, 10, ORG_OPENEPICS_NAMES, ORG_OPENEPICS_NAMES_UTIL_EXCEPTION_UTIL);
+    public void logStackTraceElements(Logger logger, Level level, Exception e) {
+        logStackTraceElements(logger, level, e, logStackTraceLength, ORG_OPENEPICS_NAMES, ORG_OPENEPICS_NAMES_UTIL_EXCEPTION_UTIL);
     }
 
     /**
@@ -99,7 +103,7 @@ public class LogUtil {
      * @param filterInclude filter include
      * @param filterExclude filter exclude
      */
-    public static void logStackTraceElements(Logger logger, Level level, ServiceException e, int maxNumberOfLogs, String filterInclude, String filterExclude) {
+    public void logStackTraceElements(Logger logger, Level level, ServiceException e, int maxNumberOfLogs, String filterInclude, String filterExclude) {
         if (logger == null || level == null || e == null || maxNumberOfLogs <= 0) {
             return;
         }
@@ -118,7 +122,7 @@ public class LogUtil {
      * @param filterInclude filter include
      * @param filterExclude filter exclude
      */
-    public static void logStackTraceElements(Logger logger, Level level, Exception e, int maxNumberOfLogs, String filterInclude, String filterExclude) {
+    public void logStackTraceElements(Logger logger, Level level, Exception e, int maxNumberOfLogs, String filterInclude, String filterExclude) {
         if (logger == null || level == null || e == null || maxNumberOfLogs <= 0) {
             return;
         }
@@ -136,7 +140,7 @@ public class LogUtil {
      * @param filterInclude filter include
      * @param filterExclude filter exclude
      */
-    private static void logStackTraceElements(Logger logger, Level level, StackTraceElement[] stackTraceElements, int maxNumberOfLogs, String filterInclude, String filterExclude) {
+    private void logStackTraceElements(Logger logger, Level level, StackTraceElement[] stackTraceElements, int maxNumberOfLogs, String filterInclude, String filterExclude) {
         if (logger == null || level == null || stackTraceElements == null || maxNumberOfLogs <= 0) {
             return;
         }
diff --git a/src/main/resources/application-docker.properties b/src/main/resources/application-docker.properties
index 5dc8bd5d..c2fdc60f 100644
--- a/src/main/resources/application-docker.properties
+++ b/src/main/resources/application-docker.properties
@@ -2,12 +2,15 @@
 # Naming
 # ------------------------------------------------------------------------------
 
+# logging
 logging.level.org.openepics.names=DEBUG
+logutil.stacktrace.length=10
 
 server.port=8083
 
 spring.profiles.active=@spring.profiles.active@
 
+# datasource
 spring.datasource.url=jdbc:postgresql://postgres:5432/discs_names
 spring.datasource.username=discs_names
 spring.datasource.password=discs_names
@@ -16,10 +19,7 @@ spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
 spring.jpa.hibernate.ddl-auto=none
 spring.jpa.hibernate.show-sql=true
 
-# ------------------------------------------------------------------------------
-# Swagger UI
-# ------------------------------------------------------------------------------
-
+# swagger uI
 app.version=0.0.1-SNAPSHOT
 openapi.externaldocs.description=ESS Naming Convention
 openapi.externaldocs.url=https://chess.esss.lu.se/enovia/link/ESS-0000757/21308.51166.45568.45993/valid
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 5dc8bd5d..c2fdc60f 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -2,12 +2,15 @@
 # Naming
 # ------------------------------------------------------------------------------
 
+# logging
 logging.level.org.openepics.names=DEBUG
+logutil.stacktrace.length=10
 
 server.port=8083
 
 spring.profiles.active=@spring.profiles.active@
 
+# datasource
 spring.datasource.url=jdbc:postgresql://postgres:5432/discs_names
 spring.datasource.username=discs_names
 spring.datasource.password=discs_names
@@ -16,10 +19,7 @@ spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
 spring.jpa.hibernate.ddl-auto=none
 spring.jpa.hibernate.show-sql=true
 
-# ------------------------------------------------------------------------------
-# Swagger UI
-# ------------------------------------------------------------------------------
-
+# swagger uI
 app.version=0.0.1-SNAPSHOT
 openapi.externaldocs.description=ESS Naming Convention
 openapi.externaldocs.url=https://chess.esss.lu.se/enovia/link/ESS-0000757/21308.51166.45568.45993/valid
-- 
GitLab