Skip to content

Commit f412e94

Browse files
authored
Logging setup using slf4j (#36)
* logging setup using slf4j and log4j * log related http request and response details * move the logger creation default behavior to logger less constructor overload
1 parent 0c1561a commit f412e94

File tree

4 files changed

+34
-7
lines changed

4 files changed

+34
-7
lines changed

rai-sdk-examples/src/main/java/com/relationalai/examples/Runner.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public static void main(String[] args) {
3737
cmd.run(cmdArgs);
3838
} catch (Exception e) {
3939
// error trying to run example
40-
System.err.println(e.toString());
40+
e.printStackTrace();
4141
}
4242
System.exit(0);
4343
}

rai-sdk/pom.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,13 @@
5959
<dependency>
6060
<groupId>org.slf4j</groupId>
6161
<artifactId>slf4j-api</artifactId>
62-
<version>1.7.36</version>
62+
<version>2.0.6</version>
63+
</dependency>
64+
<dependency>
65+
<groupId>org.slf4j</groupId>
66+
<artifactId>slf4j-reload4j</artifactId>
67+
<version>2.0.6</version>
68+
<scope>test</scope>
6369
</dependency>
6470
<dependency>
6571
<groupId>com.google.protobuf</groupId>

rai-sdk/src/main/java/com/relationalai/Client.java

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import org.apache.arrow.vector.VectorSchemaRoot;
2424
import org.apache.arrow.vector.ipc.ArrowStreamReader;
2525
import org.awaitility.Awaitility;
26+
import org.slf4j.Logger;
27+
import org.slf4j.LoggerFactory;
2628
import relationalai.protocol.Message;
2729

2830
import java.io.*;
@@ -62,6 +64,8 @@ public class Client {
6264
defaultHeaders.put("User-Agent", userAgent());
6365
}
6466

67+
private Logger logger;
68+
6569
public Client() {}
6670

6771
// Note, creating a client from config will also enable the default access
@@ -70,6 +74,10 @@ public Client() {}
7074
// alternate implementation of AccessTokenHandler handler, or it can be
7175
// disabled by caling setAccessTokenHandler(null).
7276
public Client(Config cfg) {
77+
this(cfg, LoggerFactory.getLogger("rai"));
78+
}
79+
80+
public Client(Config cfg, Logger logger) {
7381
if (cfg.region != null)
7482
this.region = cfg.region;
7583
if (cfg.scheme != null)
@@ -81,9 +89,10 @@ public Client(Config cfg) {
8189
this.httpClient = HttpClient.newBuilder().build();
8290
this.credentials = cfg.credentials;
8391
this.setAccessTokenHandler(new DefaultAccessTokenHandler());
92+
this.logger = logger;
8493
}
8594

86-
// Returns the current `HttpClient` instance, creating one if necessarry.
95+
// Returns the current `HttpClient` instance, creating one if necessary.
8796
public HttpClient getHttpClient() {
8897
return this.httpClient;
8998
}
@@ -267,10 +276,16 @@ Object sendRequest(HttpRequest.Builder builder, Map<String, String> extraHeaders
267276
HttpResponse<byte[]> response =
268277
getHttpClient().send(request, HttpResponse.BodyHandlers.ofByteArray());
269278

270-
int statusCode = response.statusCode();
271-
String contentType = response.headers().firstValue("Content-Type").orElse("");
279+
var statusCode = response.statusCode();
280+
var contentType = response.headers().firstValue("Content-Type").orElse("");
281+
var requestId = response.headers().firstValue("X-Request-ID").orElse("");
282+
var userAgent = response.request().headers().firstValue("User-Agent").orElse("");
283+
logger.debug("{} {} {} {} {} {} {}",
284+
response.request().method(),
285+
response.version(), response.request().headers().firstValue("Content-Type").orElse(""),
286+
response.request().uri(), statusCode, userAgent, requestId);
287+
272288
if (statusCode >= 400) {
273-
var requestId = response.headers().firstValue("x-request-id").orElse("");
274289
throw new HttpError(
275290
statusCode,
276291
String.format("(request_id: %s) %s", requestId, new String(response.body(), StandardCharsets.UTF_8))
@@ -586,6 +601,7 @@ public Engine[] listEngines(String state)
586601

587602
public OAuthClientExtra createOAuthClient(String name)
588603
throws HttpError, InterruptedException, IOException {
604+
logger.info("createOAuthClient {}", name);
589605
return createOAuthClient(name, null);
590606
}
591607

@@ -739,7 +755,7 @@ public TransactionAsyncResult execute(
739755
String database, String engine,
740756
String source, boolean readonly,
741757
Map<String, String> inputs) throws HttpError, IOException, InterruptedException {
742-
758+
logger.info("execute: database {}, engine {}, readonly {}", database, engine, readonly);
743759
var id = executeAsync(database, engine, source, readonly, inputs).transaction.id;
744760

745761
Awaitility.await()
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
log4j.rootLogger=DEBUG, stdout
2+
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
3+
log4j.appender.stdout.Target=System.out
4+
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
5+
log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %p : %m%n

0 commit comments

Comments
 (0)