11using Microsoft . Extensions . Configuration ;
2+ using Microsoft . Extensions . Logging ;
23using Microsoft . Extensions . Options ;
34using SmartRAG . Enums ;
45using SmartRAG . Interfaces ;
@@ -15,12 +16,14 @@ public class StorageFactory : IStorageFactory
1516 private readonly IConfiguration _configuration ;
1617 private readonly StorageProvider _currentProvider ;
1718 private readonly SmartRagOptions _options ;
19+ private readonly ILoggerFactory _loggerFactory ;
1820 private IDocumentRepository ? _currentRepository ;
1921
20- public StorageFactory ( IConfiguration configuration , IOptions < SmartRagOptions > options )
22+ public StorageFactory ( IConfiguration configuration , IOptions < SmartRagOptions > options , ILoggerFactory loggerFactory )
2123 {
2224 _configuration = configuration ;
2325 _options = options . Value ;
26+ _loggerFactory = loggerFactory ;
2427
2528 if ( Enum . IsDefined ( _options . StorageProvider ) )
2629 {
@@ -44,11 +47,11 @@ public StorageFactory(IConfiguration configuration, IOptions<SmartRagOptions> op
4447 public IDocumentRepository CreateRepository ( StorageConfig config )
4548 => config . Provider switch
4649 {
47- StorageProvider . InMemory => new InMemoryDocumentRepository ( config . InMemory ) ,
48- StorageProvider . FileSystem => new FileSystemDocumentRepository ( config . FileSystemPath ) ,
49- StorageProvider . Redis => new RedisDocumentRepository ( Options . Create ( config . Redis ) ) ,
50- StorageProvider . Sqlite => new SqliteDocumentRepository ( Options . Create ( config . Sqlite ) ) ,
51- StorageProvider . Qdrant => new QdrantDocumentRepository ( Options . Create ( config . Qdrant ) ) ,
50+ StorageProvider . InMemory => new InMemoryDocumentRepository ( config . InMemory , _loggerFactory . CreateLogger < InMemoryDocumentRepository > ( ) ) ,
51+ StorageProvider . FileSystem => new FileSystemDocumentRepository ( config . FileSystemPath , _loggerFactory . CreateLogger < FileSystemDocumentRepository > ( ) ) ,
52+ StorageProvider . Redis => new RedisDocumentRepository ( Options . Create ( config . Redis ) , _loggerFactory . CreateLogger < RedisDocumentRepository > ( ) ) ,
53+ StorageProvider . Sqlite => new SqliteDocumentRepository ( Options . Create ( config . Sqlite ) , _loggerFactory . CreateLogger < SqliteDocumentRepository > ( ) ) ,
54+ StorageProvider . Qdrant => new QdrantDocumentRepository ( Options . Create ( config . Qdrant ) , _loggerFactory . CreateLogger < QdrantDocumentRepository > ( ) ) ,
5255 _ => throw new ArgumentException ( $ "Unsupported storage provider: { config . Provider } ")
5356 } ;
5457
0 commit comments