Logging system enhanced (#124)
Co-authored-by: mikolaj widla <mikolaj.widla@gmail.com> Reviewed-on: #124 Co-authored-by: Mikolaj Widla <widlam@noreply.example.com> Co-committed-by: Mikolaj Widla <widlam@noreply.example.com>
This commit is contained in:
		| @@ -2,19 +2,17 @@ package com.r11.tools.controller; | |||||||
|  |  | ||||||
| import com.r11.tools.model.EventRequestDto; | import com.r11.tools.model.EventRequestDto; | ||||||
| import com.r11.tools.service.EtrackService; | import com.r11.tools.service.EtrackService; | ||||||
| import java.time.LocalDateTime; |  | ||||||
| import java.util.UUID; |  | ||||||
| import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||||
| import lombok.extern.slf4j.Slf4j; |  | ||||||
| import org.springframework.http.HttpStatus; | import org.springframework.http.HttpStatus; | ||||||
| import org.springframework.http.ResponseEntity; | import org.springframework.http.ResponseEntity; | ||||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||||
|  | import java.time.LocalDateTime; | ||||||
|  | import java.util.UUID; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * It's the REST api for {@link com.r11.tools.model.Event} |  * It's the REST api for {@link com.r11.tools.model.Event} | ||||||
|  * @author Gabriel Modzelewski |  * @author Gabriel Modzelewski | ||||||
|  */ |  */ | ||||||
| @Slf4j |  | ||||||
| @RestController | @RestController | ||||||
| @RequestMapping(path = "/api/event") | @RequestMapping(path = "/api/event") | ||||||
| @AllArgsConstructor | @AllArgsConstructor | ||||||
|   | |||||||
| @@ -7,7 +7,8 @@ import com.r11.tools.utilis.BusinessKey; | |||||||
| import com.r11.tools.utilis.TrackingClient; | import com.r11.tools.utilis.TrackingClient; | ||||||
| import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||||
| import lombok.SneakyThrows; | import lombok.SneakyThrows; | ||||||
| import lombok.extern.slf4j.Slf4j; | import org.apache.logging.log4j.LogManager; | ||||||
|  | import org.apache.logging.log4j.Logger; | ||||||
| import org.springframework.http.*; | import org.springframework.http.*; | ||||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||||
|  |  | ||||||
| @@ -18,14 +19,17 @@ import java.util.*; | |||||||
|  * Returns the homepage and provides the api for javascript async requests. |  * Returns the homepage and provides the api for javascript async requests. | ||||||
|  * @author Gabriel Modzelewski |  * @author Gabriel Modzelewski | ||||||
|  */ |  */ | ||||||
| @Slf4j |  | ||||||
| @RestController | @RestController | ||||||
| @RequestMapping(path = "/api/mock") | @RequestMapping(path = "/api/mock") | ||||||
| @AllArgsConstructor | @AllArgsConstructor | ||||||
| public class MockController { | public class MockController { | ||||||
|     private final KlausService klausService; |     private final KlausService klausService; | ||||||
|  |     private final Logger log = LogManager.getRootLogger(); | ||||||
|  |  | ||||||
|  |     @ExceptionHandler(Exception.class) | ||||||
|  |     public void errorHandler(Exception ex){ | ||||||
|  |         log.error(ex.getStackTrace()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Updates queried message with given set of data |      * Updates queried message with given set of data | ||||||
| @@ -77,10 +81,13 @@ public class MockController { | |||||||
|         try{ |         try{ | ||||||
|             UUID.fromString(givenUUIDValue); |             UUID.fromString(givenUUIDValue); | ||||||
|         } catch (IllegalArgumentException ex){ |         } catch (IllegalArgumentException ex){ | ||||||
|  |             log.error("Wrong UUID value!"); | ||||||
|             if (previousUUIDValue == null || previousUUIDValue.equals("")){ |             if (previousUUIDValue == null || previousUUIDValue.equals("")){ | ||||||
|                 UUID newUUID = UUID.randomUUID(); |                 UUID newUUID = UUID.randomUUID(); | ||||||
|  |                 log.info("New UUID generated."); | ||||||
|                 return ResponseEntity.ok(newUUID.toString()); |                 return ResponseEntity.ok(newUUID.toString()); | ||||||
|             } |             } | ||||||
|  |             log.info("Previous UUID value restored."); | ||||||
|             return ResponseEntity.ok(previousUUIDValue); |             return ResponseEntity.ok(previousUUIDValue); | ||||||
|         } |         } | ||||||
|         return ResponseEntity.ok(givenUUIDValue); |         return ResponseEntity.ok(givenUUIDValue); | ||||||
| @@ -180,7 +187,7 @@ public class MockController { | |||||||
|         TrackingClient.setBusinessKeys(Map.of(BusinessKey.INTERFACE_NAME, "getMockedResponse - request", |         TrackingClient.setBusinessKeys(Map.of(BusinessKey.INTERFACE_NAME, "getMockedResponse - request", | ||||||
|                 BusinessKey.CLIENT_UUID, String.valueOf(clientUUID), |                 BusinessKey.CLIENT_UUID, String.valueOf(clientUUID), | ||||||
|                 BusinessKey.MESSAGE_ID, String.valueOf(mockedResponseId))); |                 BusinessKey.MESSAGE_ID, String.valueOf(mockedResponseId))); | ||||||
|         log.info(requestEntity.toString().replaceAll("\"", "\\\\\"").substring(1)); |         // log.info(requestEntity.toString().replaceAll("\"", "\\\\\"").substring(1).replaceAll("\n","")); | ||||||
|         TrackingClient.setBusinessKeys(Map.of(BusinessKey.INTERFACE_NAME, "getMockedResponse - response", |         TrackingClient.setBusinessKeys(Map.of(BusinessKey.INTERFACE_NAME, "getMockedResponse - response", | ||||||
|                 BusinessKey.CLIENT_UUID, String.valueOf(clientUUID), |                 BusinessKey.CLIENT_UUID, String.valueOf(clientUUID), | ||||||
|                 BusinessKey.MESSAGE_ID, String.valueOf(mockedResponseId))); |                 BusinessKey.MESSAGE_ID, String.valueOf(mockedResponseId))); | ||||||
|   | |||||||
| @@ -4,20 +4,19 @@ import com.r11.tools.model.Event; | |||||||
| import com.r11.tools.model.EventRequestDto; | import com.r11.tools.model.EventRequestDto; | ||||||
| import com.r11.tools.repository.EventRepository; | import com.r11.tools.repository.EventRepository; | ||||||
| import com.r11.tools.utilis.BusinessKey; | import com.r11.tools.utilis.BusinessKey; | ||||||
|  | import lombok.AllArgsConstructor; | ||||||
|  | import org.springframework.stereotype.Service; | ||||||
|  |  | ||||||
| import java.util.Collections; | import java.util.Collections; | ||||||
| import java.util.HashMap; | import java.util.HashMap; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
| import lombok.AllArgsConstructor; |  | ||||||
| import lombok.extern.slf4j.Slf4j; |  | ||||||
| import org.springframework.stereotype.Service; |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Spring Service for {@link com.r11.tools.controller.EventController}. Contains logic required for quering |  * Spring Service for {@link com.r11.tools.controller.EventController}. Contains logic required for quering | ||||||
|  * the database for {@link Event} objects |  * the database for {@link Event} objects | ||||||
|  * @author Rafał Żukowicz |  * @author Rafał Żukowicz | ||||||
|  */ |  */ | ||||||
| @Slf4j |  | ||||||
| @Service | @Service | ||||||
| @AllArgsConstructor | @AllArgsConstructor | ||||||
| public class EtrackServiceImpl implements EtrackService { | public class EtrackServiceImpl implements EtrackService { | ||||||
|   | |||||||
| @@ -7,7 +7,8 @@ import com.r11.tools.model.MockedMessageDto; | |||||||
| import com.r11.tools.repository.MockedResponseRepository; | import com.r11.tools.repository.MockedResponseRepository; | ||||||
| import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||||
| import lombok.SneakyThrows; | import lombok.SneakyThrows; | ||||||
| import lombok.extern.slf4j.Slf4j; | import org.apache.logging.log4j.LogManager; | ||||||
|  | import org.apache.logging.log4j.Logger; | ||||||
| import org.springframework.http.HttpHeaders; | import org.springframework.http.HttpHeaders; | ||||||
| import org.springframework.http.HttpStatus; | import org.springframework.http.HttpStatus; | ||||||
| import org.springframework.http.ResponseEntity; | import org.springframework.http.ResponseEntity; | ||||||
| @@ -23,11 +24,11 @@ import java.util.stream.Collectors; | |||||||
|  * @author Rafał Żukowicz |  * @author Rafał Żukowicz | ||||||
|  * @author Gabriel Modzelewski |  * @author Gabriel Modzelewski | ||||||
|  */ |  */ | ||||||
| @Slf4j |  | ||||||
| @Service | @Service | ||||||
| @AllArgsConstructor | @AllArgsConstructor | ||||||
| public class KlausServiceImpl implements KlausService { | public class KlausServiceImpl implements KlausService { | ||||||
|     private final MockedMessageMapper mockedMessageMapper; |     private final MockedMessageMapper mockedMessageMapper; | ||||||
|  |     private final Logger log = LogManager.getRootLogger(); | ||||||
|     private final MockedResponseRepository mockedResponseRepository; |     private final MockedResponseRepository mockedResponseRepository; | ||||||
|     private final ObjectMapper objectMapper; |     private final ObjectMapper objectMapper; | ||||||
|  |  | ||||||
| @@ -41,7 +42,7 @@ public class KlausServiceImpl implements KlausService { | |||||||
|     public ResponseEntity<String> deleteMockedResponse(UUID clientUUID, int mockedResponseId) { |     public ResponseEntity<String> deleteMockedResponse(UUID clientUUID, int mockedResponseId) { | ||||||
|         String key = clientUUID.toString() + "_" + mockedResponseId; |         String key = clientUUID.toString() + "_" + mockedResponseId; | ||||||
|         mockedResponseRepository.deleteById(key); |         mockedResponseRepository.deleteById(key); | ||||||
|         log.info("Message " + mockedResponseId + " has been removed."); |         log.info("Message: "+mockedResponseId+" has been removed."); | ||||||
|         return new ResponseEntity<>("MockedResponse has been removed successfully", |         return new ResponseEntity<>("MockedResponse has been removed successfully", | ||||||
|                 new HttpHeaders(), HttpStatus.ACCEPTED); |                 new HttpHeaders(), HttpStatus.ACCEPTED); | ||||||
|     } |     } | ||||||
| @@ -54,6 +55,7 @@ public class KlausServiceImpl implements KlausService { | |||||||
|     @Override |     @Override | ||||||
|     public List<MockedMessageDto> getAllMockedResponses(UUID clientUUID){ |     public List<MockedMessageDto> getAllMockedResponses(UUID clientUUID){ | ||||||
|         Optional<List<MockedMessage>> listOptional = mockedResponseRepository.findAllByClientUUID(clientUUID); |         Optional<List<MockedMessage>> listOptional = mockedResponseRepository.findAllByClientUUID(clientUUID); | ||||||
|  |         log.info("Messages for UUID: "+clientUUID+" has been fetched from DB."); | ||||||
|         return listOptional.map(mockedMessages -> mockedMessages.stream() |         return listOptional.map(mockedMessages -> mockedMessages.stream() | ||||||
|                 .map(mockedMessageMapper::mockedMessageToMockedMessageDto) |                 .map(mockedMessageMapper::mockedMessageToMockedMessageDto) | ||||||
|                 .collect(Collectors.toList())).orElse(List.of()); |                 .collect(Collectors.toList())).orElse(List.of()); | ||||||
| @@ -76,10 +78,10 @@ public class KlausServiceImpl implements KlausService { | |||||||
|                 .build(); |                 .build(); | ||||||
|         if (optionalMockedMessage.isPresent()) { |         if (optionalMockedMessage.isPresent()) { | ||||||
|             mockedMessageDto = mockedMessageMapper.mockedMessageToMockedMessageDto(optionalMockedMessage.get()); |             mockedMessageDto = mockedMessageMapper.mockedMessageToMockedMessageDto(optionalMockedMessage.get()); | ||||||
|             log.info(mockedMessageDto.toString().replaceAll("\"", "\\\\\"")); |             //log.info(mockedMessageDto.toString().replaceAll("\"", "\\\\\"")); | ||||||
|             return mockedMessageDto; |             return mockedMessageDto; | ||||||
|         } |         } | ||||||
|         log.info(mockedMessageDto.toString().replaceAll("\"", "\\\\\"")); |         //log.info(mockedMessageDto.toString().replaceAll("\"", "\\\\\"")); | ||||||
|         return mockedMessageDto; |         return mockedMessageDto; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -92,7 +94,7 @@ public class KlausServiceImpl implements KlausService { | |||||||
|     @Override |     @Override | ||||||
|     public ResponseEntity<String> setMockedResponse(MockedMessageDto mockedMessageDto) { |     public ResponseEntity<String> setMockedResponse(MockedMessageDto mockedMessageDto) { | ||||||
|         mockedResponseRepository.save(mockedMessageMapper.mockedMessageDtoToMockedMessage(mockedMessageDto)); |         mockedResponseRepository.save(mockedMessageMapper.mockedMessageDtoToMockedMessage(mockedMessageDto)); | ||||||
|         log.info(mockedMessageDto.toString().replaceAll("\"", "\\\\\"")); |         //log.info(mockedMessageDto.toString().replaceAll("\"", "\\\\\"")); | ||||||
|         return new ResponseEntity<>("MockedResponse has been setup successfully!", new HttpHeaders(), |         return new ResponseEntity<>("MockedResponse has been setup successfully!", new HttpHeaders(), | ||||||
|                 HttpStatus.ACCEPTED); |                 HttpStatus.ACCEPTED); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -1,6 +1,7 @@ | |||||||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||||||
| <configuration> | <configuration> | ||||||
|     <include resource="org/springframework/boot/logging/logback/base.xml"/> |     <include resource="org/springframework/boot/logging/logback/base.xml"/> | ||||||
|  |     <property name="HOME_LOG" value="/log/mockServices.log"/> | ||||||
|     <!--https://github.com/kmtong/logback-redis-appender--> |     <!--https://github.com/kmtong/logback-redis-appender--> | ||||||
|     <appender name="LOGSTASH" class="com.r11.tools.utilis.RedisAppender"> |     <appender name="LOGSTASH" class="com.r11.tools.utilis.RedisAppender"> | ||||||
|         <host>redis</host> |         <host>redis</host> | ||||||
| @@ -16,6 +17,22 @@ | |||||||
|     <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"> |     <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender"> | ||||||
|         <appender-ref ref="LOGSTASH" /> |         <appender-ref ref="LOGSTASH" /> | ||||||
|     </appender> |     </appender> | ||||||
|  |  | ||||||
|  |     <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||||||
|  |         <file>${HOME_LOG}</file> | ||||||
|  |  | ||||||
|  |         <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> | ||||||
|  |             <fileNamePattern>logs/mockServices.%d{yyyy-MM-dd}.%i.log</fileNamePattern> | ||||||
|  |             <maxFileSize>10MB</maxFileSize> | ||||||
|  |             <totalSizeCap>20GB</totalSizeCap> | ||||||
|  |             <maxHistory>60</maxHistory> | ||||||
|  |         </rollingPolicy> | ||||||
|  |  | ||||||
|  |         <encoder> | ||||||
|  |             <pattern>%d %p %c{1.} [%t] %m%n</pattern> | ||||||
|  |         </encoder> | ||||||
|  |     </appender> | ||||||
|  |  | ||||||
|     <root level="DEBUG"> |     <root level="DEBUG"> | ||||||
|         <appender-ref ref="ASYNC" /> |         <appender-ref ref="ASYNC" /> | ||||||
|         <appender-ref ref="CONSOLE" /> |         <appender-ref ref="CONSOLE" /> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user