Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
90e7683
chore: Tidyup build issues
monowai Jul 25, 2023
cd5044f
refactor: Kotlin/Gradle
monowai Aug 3, 2023
b59950d
Merge pull request #2 from monowai/dev-refactor
muhammadn Aug 24, 2023
c158fe5
refactor: Simplify classes and introduce clearer defaults
monowai Sep 8, 2023
8fe24f5
feat: Beef up Interceptor tests
monowai Sep 9, 2023
414bee1
Merge branch 'muhammadn:main' into dev-refactor
monowai Sep 12, 2023
b1b0dc5
Merge pull request #3 from monowai/dev-refactor
muhammadn Oct 19, 2023
deddc9b
Merge branch 'main' of github.com:FireTail-io/firetail-java-lib
muhammadn Oct 19, 2023
55d1336
chore: Fix publishToMavenLocal
monowai Oct 24, 2023
a9ba96f
feat: Added Spring Boot Web Demo
monowai Oct 25, 2023
8e1abf8
feat: Added Open API documentation
monowai Oct 31, 2023
56a0a59
feat: Firetail Interceptor. Add tests to support correct disabling
monowai Nov 23, 2023
efabcac
feat: Serialization
monowai Nov 24, 2023
b35a62f
feat: Map payload
monowai Nov 27, 2023
ab40eaa
feat: Send logs
monowai Nov 28, 2023
b0e7ad8
feat: EnableFiretail annotation. remove config property
monowai Nov 29, 2023
aa49569
feat: Tidyup logging and duration
monowai Dec 1, 2023
cbaf27c
feat: Added a buffer for data logs. Minor package refactor
monowai Dec 4, 2023
87b1186
refactor: Internalise locking of the Buffer and remove the need to sy…
monowai Dec 5, 2023
bfd9baf
add issue notes and github actions
muhammadn Dec 5, 2023
69fe1c5
Merge branch 'feat/kotlin-migration' of github.com:FireTail-io/fireta…
muhammadn Dec 5, 2023
140ace4
change version for jdk
muhammadn Dec 5, 2023
d7a3737
check for multiple java versions
muhammadn Dec 5, 2023
1e956da
remove java 17
muhammadn Dec 5, 2023
a57ba9d
add back java-version
muhammadn Dec 5, 2023
24eaa35
cache builds
muhammadn Dec 5, 2023
238b878
add documentation
muhammadn Oct 7, 2024
e6a01ba
should be application-local.yml
muhammadn Oct 8, 2024
4566567
add a note to tell user about env vars
muhammadn Oct 15, 2024
d43259b
rephrase it a bit
muhammadn Oct 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
chore: Tidyup build issues
  • Loading branch information
monowai committed Jul 25, 2023
commit 90e76839dc49a3b9469c861640f855b96c06ff8f
103 changes: 103 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# General
*.log
*.keystore
.history/
*.tgz

# git-secret rules
.secrets/*.*
!.secrets/*.secret
!.secrets/public-keys/
.gitsecret/keys/random_seed
.gitsecret/keys/pubring.kbx~


.ci/gradle*

# You can put a script which call `yarn prettier-eslint --write` that prettify the file in-place.
# Keep in mind the hook files are executed by alphabet sequence: so `in_place_prettier_eslint` will be executed before `prettier_eslint`
buildtools/hooks/pre-commit.d/in_place_prettier_eslint

# Archives / Binaries
*.jar
*.zip
*.tar.gz
*.so
*.xcarchive

# MacOS
.DS_Store

# Build Output
build/
out/
bin/
codemr/

# JetBrains
.idea/
*.iml
*.ipr
*.iws
.mvn/
.project

# VSCode
.vscode/
*.code-workspace

# Eclipse
.settings/
.classpath

# Java
*.hprof
.gradle/
!gradle-wrapper.jar
!gradle-wrapper.properties


# Node or NPM or Yarn
npm-debug.log*
yarn-debug.log*
yarn-error.log*
node_modules/
.eslintcache

# Jest/Bamboo test results output
jest.json
coverage/

# Vagrant
.vagrant/

# Xcode
#
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
project.xcworkspace
**/*.framework/


# VIM
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-v][a-z]
[._]sw[a-p]
version.yml

#Andorid
local.properties
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<version>0.0.1.SNAPSPOT</version>
<name>firetail-java-lib</name>
<description>Java Library for Firetail</description>
<url>https://github.com/muhammadn/firetail-java-lib<url>
<url>https://github.com/muhammadn/firetail-java-lib</url>

<developers>
<developer>
Expand All @@ -30,7 +30,7 @@
<commons-io.version>2.6</commons-io.version>
<javax-servlet.version>4.0.1</javax-servlet.version>
<logstash-logback.version>5.3</logstash-logback.version>
<spring.version>5.2.3.RELEASE</spring.version>
<spring.version>5.2.21.RELEASE</spring.version>
<spring.boot.version>2.1.4.RELEASE</spring.boot.version>
<slf4j.version>1.7.26</slf4j.version>
</properties>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,18 @@
package io.firetail.logging.config;

import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.core.net.ssl.KeyStoreFactoryBean;
import ch.qos.logback.core.net.ssl.SSLConfiguration;
//import net.logstash.logback.appender.LogstashTcpSocketAppender;
//import net.logstash.logback.encoder.LogstashEncoder;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestInterceptor;
import org.springframework.web.client.RestTemplate;

import io.firetail.logging.client.RestTemplateSetHeaderInterceptor;
import io.firetail.logging.filter.SpringLoggingFilter;
import io.firetail.logging.filter.SpringLoggerFilter;
import io.firetail.logging.util.UniqueIDGenerator;

import javax.annotation.PostConstruct;
Expand All @@ -28,9 +22,9 @@

@Configuration
@ConfigurationProperties(prefix = "logging.logstash")
public class SpringLoggingAutoConfiguration {
public class SpringLoggerAutoConfiguration {

private static final String FIRETAIL_APPENDER_NAME = "FIRETAIL";
// private static final String FIRETAIL_APPENDER_NAME = "FIRETAIL";

private String url = "localhost:8500";
private String ignorePatterns;
Expand All @@ -48,15 +42,15 @@ public UniqueIDGenerator generator() {
}

@Bean
public SpringLoggingFilter loggingFilter() {
return new SpringLoggingFilter(generator(), ignorePatterns, logHeaders);
public SpringLoggerFilter loggingFilter() {
return new SpringLoggerFilter(generator(), ignorePatterns, logHeaders);
}

@Bean
@ConditionalOnMissingBean(RestTemplate.class)
public RestTemplate restTemplate() {
RestTemplate restTemplate = new RestTemplate();
List<ClientHttpRequestInterceptor> interceptorList = new ArrayList<ClientHttpRequestInterceptor>();
List<ClientHttpRequestInterceptor> interceptorList = new ArrayList<>();
interceptorList.add(new RestTemplateSetHeaderInterceptor());
restTemplate.setInterceptors(interceptorList);
return restTemplate;
Expand Down Expand Up @@ -94,11 +88,11 @@ public FiretailTcpSocketAppender firetailAppender() {
@PostConstruct
public void init() {
template.ifPresent(restTemplate -> {
List<ClientHttpRequestInterceptor> interceptorList = new ArrayList<ClientHttpRequestInterceptor>();
List<ClientHttpRequestInterceptor> interceptorList = new ArrayList<>();
interceptorList.add(new RestTemplateSetHeaderInterceptor());
restTemplate.setInterceptors(interceptorList);
});
}
}

public String getUrl() {
return url;
Expand Down
24 changes: 12 additions & 12 deletions src/main/java/io/firetail/logging/filter/SpringLoggerFilter.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package io.firetail.logging.filter;

import io.firetail.logging.util.UniqueIDGenerator;
import io.firetail.logging.wrapper.SpringRequestWrapper;
import io.firetail.logging.wrapper.SpringResponseWrapper;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand All @@ -9,31 +12,28 @@
import org.springframework.web.filter.OncePerRequestFilter;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerExecutionChain;
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
import io.firetail.logging.util.UniqueIDGenerator;
import io.firetail.logging.wrapper.SpringRequestWrapper;
import io.firetail.logging.wrapper.SpringResponseWrapper;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;
import java.util.Objects;

public class SpringLoggingFilter extends OncePerRequestFilter {
import static net.logstash.logback.argument.StructuredArguments.value;

public class SpringLoggerFilter extends OncePerRequestFilter {

private static final Logger LOGGER = LoggerFactory.getLogger(SpringLoggingFilter.class);
private UniqueIDGenerator generator;
private String ignorePatterns;
private boolean logHeaders;
private static final Logger LOGGER = LoggerFactory.getLogger(SpringLoggerFilter.class);
private final UniqueIDGenerator generator;
private final String ignorePatterns;
private final boolean logHeaders;

@Autowired
ApplicationContext context;

public SpringLoggingFilter(UniqueIDGenerator generator, String ignorePatterns, boolean logHeaders) {
public SpringLoggerFilter(UniqueIDGenerator generator, String ignorePatterns, boolean logHeaders) {
this.generator = generator;
this.ignorePatterns = ignorePatterns;
this.logHeaders = logHeaders;
Expand Down Expand Up @@ -88,7 +88,7 @@ private void logResponse(long startTime, SpringResponseWrapper wrappedResponse,

private void getHandlerMethod(HttpServletRequest request) throws Exception {
RequestMappingHandlerMapping mappings1 = (RequestMappingHandlerMapping) context.getBean("requestMappingHandlerMapping");
Map<RequestMappingInfo, HandlerMethod> handlerMethods = mappings1.getHandlerMethods();
// Map<RequestMappingInfo, HandlerMethod> handlerMethods = mappings1.getHandlerMethods();
HandlerExecutionChain handler = mappings1.getHandler(request);
if (Objects.nonNull(handler)) {
HandlerMethod handler1 = (HandlerMethod) handler.getHandler();
Expand Down