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