Skip to content

Commit 1f945b1

Browse files
author
jaguzman
committed
Changed the ILogger property for all context to ILoggerProvider
1 parent 1ef532c commit 1f945b1

File tree

6 files changed

+73
-50
lines changed

6 files changed

+73
-50
lines changed

src/DotNetToolkit.Repository.AdoNet/Internal/AdoNetRepositoryContext.cs

Lines changed: 33 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
{
33
using Configuration.Conventions;
44
using Configuration.Logging;
5-
using Configuration.Logging.Internal;
65
using Extensions;
76
using Extensions.Internal;
87
using Properties;
@@ -35,7 +34,8 @@ internal class AdoNetRepositoryContext : IAdoNetRepositoryContext
3534
private readonly SchemaTableConfigurationHelper _schemaConfigHelper;
3635
private readonly DbHelper _dbHelper;
3736
private readonly bool _ensureDatabaseCreated;
38-
private ILogger _logger = NullLogger.Instance;
37+
private ILoggerProvider _loggerProvider;
38+
private ILogger _logger;
3939

4040
#endregion
4141

@@ -51,13 +51,26 @@ internal class AdoNetRepositoryContext : IAdoNetRepositoryContext
5151
/// </summary>
5252
public ILogger Logger
5353
{
54-
get { return _logger; }
55-
set
54+
get
5655
{
57-
_logger = value;
56+
if (_logger == null)
57+
_logger = LoggerProvider?.Create(GetType().FullName);
58+
59+
return _logger;
60+
}
61+
}
5862

59-
if (_dbHelper != null)
60-
_dbHelper.Logger = _logger;
63+
/// <summary>
64+
/// Gets or sets the repository context logger provider.
65+
/// </summary>
66+
public ILoggerProvider LoggerProvider
67+
{
68+
get { return _loggerProvider; }
69+
set
70+
{
71+
_logger = null;
72+
_loggerProvider = value;
73+
_dbHelper.Logger = _loggerProvider?.Create(_dbHelper.GetType().FullName);
6174
}
6275
}
6376

@@ -83,6 +96,7 @@ public AdoNetRepositoryContext(string nameOrConnectionString, bool ensureDatabas
8396
_dbHelper = new DbHelper(Conventions, nameOrConnectionString);
8497
_schemaConfigHelper = new SchemaTableConfigurationHelper(_dbHelper);
8598
_ensureDatabaseCreated = ensureDatabaseCreated;
99+
_loggerProvider = NullLoggerProvider.Instance;
86100
}
87101

88102
/// <summary>
@@ -105,6 +119,7 @@ public AdoNetRepositoryContext(string providerName, string connectionString, boo
105119
_dbHelper = new DbHelper(Conventions, providerName, connectionString);
106120
_schemaConfigHelper = new SchemaTableConfigurationHelper(_dbHelper);
107121
_ensureDatabaseCreated = ensureDatabaseCreated;
122+
_loggerProvider = NullLoggerProvider.Instance;
108123
}
109124

110125
/// <summary>
@@ -125,19 +140,11 @@ public AdoNetRepositoryContext(DbConnection existingConnection, bool ensureDatab
125140
_dbHelper = new DbHelper(Conventions, existingConnection);
126141
_schemaConfigHelper = new SchemaTableConfigurationHelper(_dbHelper);
127142
_ensureDatabaseCreated = ensureDatabaseCreated;
143+
_loggerProvider = NullLoggerProvider.Instance;
128144
}
129145

130146
#endregion
131147

132-
#region Implementation of IAdoNetRepositoryContext
133-
134-
/// <summary>
135-
/// Gets the database helper which contains various methods for retrieving and manipulating data in a database.
136-
/// </summary>
137-
public DbHelper DbHelper { get { return _dbHelper; } }
138-
139-
#endregion
140-
141148
#region Private Methods
142149

143150
private void PrepareEntitySetQuery(EntitySet entitySet, bool existInDb, out string sql, out Dictionary<string, object> parameters)
@@ -201,6 +208,15 @@ private async Task ExecuteSchemaValidateAsync(Type entityType, CancellationToken
201208

202209
#endregion
203210

211+
#region Implementation of IAdoNetRepositoryContext
212+
213+
/// <summary>
214+
/// Gets the database helper which contains various methods for retrieving and manipulating data in a database.
215+
/// </summary>
216+
public DbHelper DbHelper { get { return _dbHelper; } }
217+
218+
#endregion
219+
204220
#region Implementation of IRepositoryContext
205221

206222
/// <summary>
@@ -251,7 +267,7 @@ public ITransactionManager BeginTransaction()
251267
{
252268
var transaction = _dbHelper.BeginTransaction();
253269

254-
CurrentTransaction = new AdoNetTransactionManager(transaction, Logger);
270+
CurrentTransaction = new AdoNetTransactionManager(transaction);
255271

256272
return CurrentTransaction;
257273
}

src/DotNetToolkit.Repository.AdoNet/Internal/AdoNetTransactionManager.cs

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
namespace DotNetToolkit.Repository.AdoNet.Internal
22
{
3-
using Configuration.Logging;
4-
using Extensions;
53
using System.Data.Common;
64
using Transactions;
75
using Utility;
@@ -12,12 +10,6 @@
1210
/// <seealso cref="ITransactionManager" />
1311
internal class AdoNetTransactionManager : ITransactionManager
1412
{
15-
#region Fields
16-
17-
private readonly ILogger _logger;
18-
19-
#endregion
20-
2113
#region Properties
2214

2315
/// <summary>
@@ -33,12 +25,8 @@ internal class AdoNetTransactionManager : ITransactionManager
3325
/// Initializes a new instance of the <see cref="AdoNetTransactionManager" /> class.
3426
/// </summary>
3527
/// <param name="transaction">The underlying transaction.</param>
36-
/// <param name="logger">The logger.</param>
37-
public AdoNetTransactionManager(DbTransaction transaction, ILogger logger)
28+
public AdoNetTransactionManager(DbTransaction transaction)
3829
{
39-
_logger = Guard.NotNull(logger, nameof(logger));
40-
_logger.Debug("Started transaction");
41-
4230
Transaction = Guard.NotNull(transaction, nameof(transaction));
4331
}
4432

@@ -52,8 +40,6 @@ public AdoNetTransactionManager(DbTransaction transaction, ILogger logger)
5240
public void Dispose()
5341
{
5442
Transaction.Dispose();
55-
56-
_logger.Debug("Disposed transaction");
5743
}
5844

5945
#endregion
@@ -73,8 +59,6 @@ public void Commit()
7359
Transaction.Commit();
7460

7561
Status = TransactionStatus.Committed;
76-
77-
_logger.Debug("Committed transaction");
7862
}
7963

8064
/// <summary>
@@ -85,8 +69,6 @@ public void Rollback()
8569
Transaction.Rollback();
8670

8771
Status = TransactionStatus.Aborted;
88-
89-
_logger.Debug("Rolled-back transaction");
9072
}
9173

9274
#endregion

src/DotNetToolkit.Repository/Configuration/IRepositoryContext.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ public interface IRepositoryContext : IDisposable
5252
IRepositoryConventions Conventions { get; }
5353

5454
/// <summary>
55-
/// Gets or sets the repository context logger.
55+
/// Gets or sets the repository context logger provider.
5656
/// </summary>
57-
ILogger Logger { get; set; }
57+
ILoggerProvider LoggerProvider { get; set; }
5858

5959
/// <summary>
6060
/// Tracks the specified entity in memory and will be inserted into the database when <see cref="SaveChanges()" /> is called.

src/DotNetToolkit.Repository/Configuration/LinqRepositoryContextBase.cs

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
using Extensions;
55
using JetBrains.Annotations;
66
using Logging;
7-
using Logging.Internal;
87
using Properties;
98
using Queries;
109
using Queries.Internal;
@@ -23,6 +22,13 @@
2322
/// </summary>
2423
public abstract class LinqRepositoryContextBase : IRepositoryContext
2524
{
25+
#region Fields
26+
27+
private ILoggerProvider _loggerProvider;
28+
private ILogger _logger;
29+
30+
#endregion
31+
2632
#region Properties
2733

2834
/// <summary>
@@ -33,7 +39,29 @@ public abstract class LinqRepositoryContextBase : IRepositoryContext
3339
/// <summary>
3440
/// Gets or sets the repository context logger.
3541
/// </summary>
36-
public ILogger Logger { get; set; } = NullLogger.Instance;
42+
public ILogger Logger
43+
{
44+
get
45+
{
46+
if (_logger == null)
47+
_logger = LoggerProvider?.Create(GetType().FullName);
48+
49+
return _logger;
50+
}
51+
}
52+
53+
/// <summary>
54+
/// Gets or sets the repository context logger provider.
55+
/// </summary>
56+
public ILoggerProvider LoggerProvider
57+
{
58+
get { return _loggerProvider; }
59+
set
60+
{
61+
_logger = null;
62+
_loggerProvider = value;
63+
}
64+
}
3765

3866
#endregion
3967

@@ -45,6 +73,8 @@ public abstract class LinqRepositoryContextBase : IRepositoryContext
4573
protected LinqRepositoryContextBase()
4674
{
4775
Conventions = RepositoryConventions.Default<LinqRepositoryContextBase>();
76+
77+
_loggerProvider = NullLoggerProvider.Instance;
4878
}
4979

5080
#endregion

src/DotNetToolkit.Repository/Internal/RepositoryContextAsyncWrapper.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,10 @@ public IRepositoryConventions Conventions
7474
get { return _underlyingContext.Conventions; }
7575
}
7676

77-
public ILogger Logger
77+
public ILoggerProvider LoggerProvider
7878
{
79-
get { return _underlyingContext.Logger; }
80-
set { _underlyingContext.Logger = value; }
79+
get { return _underlyingContext.LoggerProvider; }
80+
set { _underlyingContext.LoggerProvider = value; }
8181
}
8282

8383
public void Add<TEntity>(TEntity entity) where TEntity : class

src/DotNetToolkit.Repository/RepositoryBase.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
using Configuration.Conventions;
77
using Configuration.Interceptors;
88
using Configuration.Logging;
9-
using Configuration.Logging.Internal;
109
using Configuration.Mapper;
1110
using Configuration.Options;
1211
using Extensions;
@@ -2982,14 +2981,10 @@ protected virtual IRepositoryContext GetContext()
29822981
Guard.EnsureNotNull(context.Conventions, "No conventions have been configured for this context.");
29832982

29842983
if (_options.Conventions != null)
2985-
{
29862984
context.Conventions.Apply(_options.Conventions);
2987-
}
29882985

2989-
if (context.Logger == null || context.Logger is NullLogger)
2990-
{
2991-
context.Logger = LoggerProvider.Create(context.GetType().FullName);
2992-
}
2986+
if (context.LoggerProvider == null && LoggerProvider != null)
2987+
context.LoggerProvider = LoggerProvider;
29932988

29942989
return context;
29952990
}

0 commit comments

Comments
 (0)