Skip to content

Commit 3e5f58b

Browse files
Juan Pablo Diaz-VazJuan Pablo Diaz-Vaz
authored andcommitted
SUMOK-17 Using Sumologics Log4j library
1 parent e12b38a commit 3e5f58b

3 files changed

Lines changed: 51 additions & 2 deletions

File tree

log4j.properties

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Root logger option
2+
log4j.rootLogger=INFO, stdout
3+
log4j.logger.sumologic = TRACE, sumo
4+
5+
# Direct log messages to sumo
6+
log4j.appender.sumo=com.sumologic.log4j.BufferedSumoLogicAppender
7+
log4j.appender.sumo.url=https://collectors.us2.sumologic.com/receiver/v1/http/ZaVnC4dhaV0GzIY4tZaKLL26afV52gXBvSFc3jG1eLc2lKINzS2doZdRjUMQMb2CXK8r6fdmHoUazJiHjJ-2OygApoWFaxCTkWFrzAiraCc5i411pkio-g==
8+
log4j.appender.sumo.layout=org.apache.log4j.PatternLayout
9+
log4j.appender.sumo.layout.ConversionPattern=%d{DATE} %5p %c{1}:%L - %m%n
10+
log4j.additivity.sumo = false
11+
log4j.appender.sumo.Threshold = TRACE
12+
13+
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
14+
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
15+
log4j.appender.stdout.layout.ConversionPattern=%d{DATE} %5p %c{1}:%L - %m%n
16+
log4j.appender.stdout.Threshold = INFO

src/main/java/com/mcplusa/sumologic/SumologicSender.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,14 @@
1515
import org.apache.http.util.EntityUtils;
1616
import org.apache.http.impl.client.DefaultHttpClient;
1717
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
18+
import org.apache.log4j.Logger;
19+
import org.apache.log4j.PatternLayout;
20+
import org.apache.log4j.RollingFileAppender;
1821

1922
public class SumologicSender {
2023
private static final Log LOG = LogFactory.getLog(SumologicSender.class);
24+
25+
private static final boolean USE_LOG4J = true;
2126

2227
private String url = null;
2328
private HttpClient httpClient = null;
@@ -27,7 +32,6 @@ public class SumologicSender {
2732
private static final int RETRIES = 3;
2833
private static final int SLEEP_TIME = 1000;
2934

30-
3135
public SumologicSender(String url) {
3236
this.url = url;
3337

@@ -36,8 +40,17 @@ public SumologicSender(String url) {
3640
HttpConnectionParams.setSoTimeout(params, socketTimeout);
3741
httpClient = new DefaultHttpClient(new ThreadSafeClientConnManager(), params);
3842
}
43+
44+
public boolean sendToSumologicUsingLog4j(String data) {
45+
Logger sumologicLog = Logger.getLogger("sumologic");
46+
sumologicLog.trace(data);
47+
return true;
48+
}
3949

4050
public boolean sendToSumologic(String data) throws IOException{
51+
if (USE_LOG4J)
52+
return sendToSumologicUsingLog4j(data);
53+
4154
int retries = RETRIES;
4255
int sleep_time = SLEEP_TIME;
4356
int statusCode;

src/main/java/com/mcplusa/sumologic/implementations/SumologicEmitter.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
*/
2424
public class SumologicEmitter implements IEmitter<String> {
2525
private static final Log LOG = LogFactory.getLog(SumologicEmitter.class);
26+
27+
private static final boolean CONCATENATE_BATCH = false;
2628

2729
private SumologicSender sender;
2830
private KinesisConnectorForSumologicConfiguration config;
@@ -40,7 +42,10 @@ public SumologicEmitter(String url) {
4042
public List<String> emit(final UnmodifiableBuffer<String> buffer)
4143
throws IOException {
4244
List<String> records = buffer.getRecords();
43-
return sendBatchConcatenating(records);
45+
if (CONCATENATE_BATCH)
46+
return sendBatchConcatenating(records);
47+
else
48+
return sendRecordsOneByOne(records);
4449
}
4550

4651
public List<String> sendBatchConcatenating(List<String> records) {
@@ -65,6 +70,21 @@ public List<String> sendBatchConcatenating(List<String> records) {
6570
return records;
6671
}
6772
}
73+
74+
public List<String> sendRecordsOneByOne (List<String> records) {
75+
ArrayList<String> failedRecords = new ArrayList<String>();
76+
for (String record: records) {
77+
try {
78+
if (!sender.sendToSumologic(record)) {
79+
failedRecords.add(record);
80+
}
81+
} catch (IOException e) {
82+
LOG.warn("Couldn't send record: "+record);
83+
}
84+
}
85+
LOG.info("Sent records: "+(records.size()-failedRecords.size())+" failed: "+failedRecords.size());
86+
return failedRecords;
87+
}
6888

6989
@Override
7090
public void fail(List<String> records) {

0 commit comments

Comments
 (0)