Сообщения журнала группы - PullRequest
0 голосов
/ 30 июля 2009

У меня есть веб-приложение, в котором я реализовал ведение журнала (используя Common.Logging), теперь оно сохраняет сообщения журнала в базе данных. Но в одной части системы, процессе импорта, я хотел бы представить только сообщения журнала, относящиеся к этому процессу импорта (который был создан пользователем), а не накопленные сообщения журнала.

ниже вы видите код для моего ImportProcessor, который зависит от ILog (из Common.Loggning) и некоторых компонентов импорта, который также зависит от ILog и некоторых других вещей.

ILog вводится с помощью DI (autofac), где логическое имя автоматически разрешается.

public class ImportProcessor
{
    private readonly ILog log;
    private readonly IImportFetcher fetcher;
    private readonly IImportFormatter formatter;
    private readonly IEnumerable<IImportFilter> filters;
    private readonly IEnumerable<IImportExporter> exporters;

    internal ImportProcessor(ILog log, IImportFetcher fetcher, IImportFormatter formatter, IEnumerable<IImportFilter> filters, IEnumerable<IImportExporter> exporters)
    {
        this.log = log;
        this.fetcher = fetcher;
        this.formatter = formatter;
        this.filters = filters;
        this.exporters = exporters;
    }

    public void Execute()
    {
        log.Info("Import starts");

        var rawdata = fetcher.Fetch();
        var importDatas = formatter.Transform(rawdata);

        foreach (var filter in filters)
        {
            importDatas = filter.Filter(importDatas);
        }

        foreach (var exporter in exporters)
        {
            exporter.Export(importDatas);
        }

        log.Info("Import done");            
    }
}

Есть ли у вас хорошие предложения о том, как сгруппировать все сообщения журнала, связанные с этим ImportProcessor?

1 Ответ

1 голос
/ 30 июля 2009

Вы можете попробовать использовать ведение журнала Enterprise Library:

http://msdn.microsoft.com/en-us/library/dd139916.aspx

Используя EntLib, журналы могут подписываться на разные события. Позволяет вам разместить все события в одном месте и одновременно разместить отдельные события в отдельном журнале.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...