Skip to content

Commit f89a89b

Browse files
dev: update log level on AttachStream (#228)
* dev: update log level on AttachStream * ADO.NET & WriterTopic make Debug in tests
1 parent fdc94d5 commit f89a89b

File tree

5 files changed

+41
-17
lines changed

5 files changed

+41
-17
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
- Update log level on AttachStream
2+
13
## v0.9.0
24
- Writer client for YDB topics
35
- Fix: delete default timeout grpc.deadline

src/Ydb.Sdk/src/Pool/SessionPool.cs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -208,25 +208,35 @@ private async ValueTask TryDriverDispose(int expectedCurrentCount)
208208
public abstract class SessionBase<T> where T : SessionBase<T>
209209
{
210210
private readonly SessionPool<T> _sessionPool;
211+
private readonly ILogger _logger;
211212

212213
public string SessionId { get; }
213214

214215
internal long NodeId { get; }
215216

216217
internal volatile bool IsActive = true;
217218

218-
internal SessionBase(SessionPool<T> sessionPool, string sessionId, long nodeId)
219+
internal SessionBase(SessionPool<T> sessionPool, string sessionId, long nodeId, ILogger logger)
219220
{
220221
_sessionPool = sessionPool;
221222
SessionId = sessionId;
222223
NodeId = nodeId;
224+
_logger = logger;
223225
}
224226

225227
internal void OnStatus(Status status)
226228
{
227-
if (status.StatusCode is StatusCode.BadSession or StatusCode.SessionBusy or StatusCode.InternalError
228-
or StatusCode.ClientTransportTimeout or StatusCode.Unavailable or StatusCode.ClientTransportUnavailable)
229+
// ReSharper disable once InvertIf
230+
if (status.StatusCode is
231+
StatusCode.BadSession or
232+
StatusCode.SessionBusy or
233+
StatusCode.InternalError or
234+
StatusCode.ClientTransportTimeout or
235+
StatusCode.Unavailable or
236+
StatusCode.ClientTransportUnavailable)
229237
{
238+
_logger.LogWarning("Session[{SessionId}] is deactivated. Reason: {Status}", SessionId, status);
239+
230240
IsActive = false;
231241
}
232242
}

src/Ydb.Sdk/src/Services/Query/SessionPool.cs

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,26 +22,26 @@ internal sealed class SessionPool : SessionPool<Session>, IAsyncDisposable
2222

2323
private readonly Driver _driver;
2424
private readonly bool _disposingDriver;
25+
private readonly ILogger<Session> _loggerSession;
2526

2627
internal SessionPool(Driver driver, int? maxSessionPool = null, bool disposingDriver = false)
2728
: base(driver.LoggerFactory.CreateLogger<SessionPool>(), maxSessionPool)
2829
{
2930
_driver = driver;
3031
_disposingDriver = disposingDriver;
32+
_loggerSession = driver.LoggerFactory.CreateLogger<Session>();
3133
}
3234

3335
protected override async Task<Session> CreateSession()
3436
{
3537
var response = await _driver.UnaryCall(QueryService.CreateSessionMethod, CreateSessionRequest,
3638
CreateSessionSettings);
3739

38-
var status = Status.FromProto(response.Status, response.Issues);
39-
40-
status.EnsureSuccess();
40+
Status.FromProto(response.Status, response.Issues).EnsureSuccess();
4141

4242
TaskCompletionSource<Status> completeTask = new();
4343

44-
var session = new Session(_driver, this, response.SessionId, response.NodeId);
44+
var session = new Session(_driver, this, response.SessionId, response.NodeId, _loggerSession);
4545

4646
_ = Task.Run(async () =>
4747
{
@@ -74,27 +74,26 @@ protected override async Task<Session> CreateSession()
7474
// ReSharper disable once InvertIf
7575
if (!session.IsActive)
7676
{
77-
Logger.LogWarning("Session[{SessionId}] is deactivated", session.SessionId);
78-
7977
return;
8078
}
8179
}
8280

81+
Logger.LogDebug("Session[{SessionId}]: Attached stream is closed", session.SessionId);
82+
8383
// attach stream is closed
8484
}
85-
catch (Driver.TransportException)
85+
catch (Driver.TransportException e)
8686
{
87+
Logger.LogWarning(e, "Session[{SessionId}] is deactivated by transport error", session.SessionId);
8788
}
8889
}
89-
catch (Exception e)
90+
catch (Driver.TransportException e)
9091
{
9192
completeTask.SetException(e);
9293
}
9394
finally
9495
{
9596
session.IsActive = false;
96-
97-
Logger.LogTrace("Session[{SessionId}]: Attached stream is closed", session.SessionId);
9897
}
9998
});
10099

@@ -134,8 +133,13 @@ internal class Session : SessionBase<Session>
134133
{
135134
private readonly Driver _driver;
136135

137-
internal Session(Driver driver, SessionPool<Session> sessionPool, string sessionId, long nodeId)
138-
: base(sessionPool, sessionId, nodeId)
136+
internal Session(
137+
Driver driver,
138+
SessionPool<Session> sessionPool,
139+
string sessionId,
140+
long nodeId,
141+
ILogger<Session> logger
142+
) : base(sessionPool, sessionId, nodeId, logger)
139143
{
140144
_driver = driver;
141145
}

src/Ydb.Sdk/tests/Pool/SessionPoolTests.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using Google.Protobuf.Collections;
2+
using Microsoft.Extensions.Logging;
23
using Microsoft.Extensions.Logging.Abstractions;
34
using Xunit;
45
using Ydb.Issue;
@@ -106,7 +107,8 @@ protected override Task<Status> DeleteSession(TestSession session)
106107

107108
public class TestSession : SessionBase<TestSession>
108109
{
109-
internal TestSession(SessionPool<TestSession> sessionPool) : base(sessionPool, "0", 0)
110+
internal TestSession(SessionPool<TestSession> sessionPool)
111+
: base(sessionPool, "0", 0, Utils.GetLoggerFactory().CreateLogger<TestSession>())
110112
{
111113
}
112114
}

src/Ydb.Sdk/tests/Utils.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,13 @@ public static async Task<ExecuteSchemeQueryResponse> ExecuteSchemeQuery(
4747
internal static ILoggerFactory GetLoggerFactory()
4848
{
4949
return new ServiceCollection()
50-
.AddLogging(configure => configure.AddConsole().SetMinimumLevel(LogLevel.Debug))
50+
.AddLogging(configure =>
51+
{
52+
configure.AddConsole().SetMinimumLevel(LogLevel.Information);
53+
configure.AddFilter("Ydb.Sdk.Ado", LogLevel.Debug);
54+
configure.AddFilter("Ydb.Sdk.Services.Query", LogLevel.Debug);
55+
configure.AddFilter("Ydb.Sdk.Services.Topic", LogLevel.Debug);
56+
})
5157
.BuildServiceProvider()
5258
.GetService<ILoggerFactory>() ?? NullLoggerFactory.Instance;
5359
}

0 commit comments

Comments
 (0)