CodeCampServer не вводить какие-либо записи из NHibernate? - PullRequest
0 голосов
/ 02 февраля 2010

Вам когда-нибудь удавалось вводить протоколирование NHibernate с использованием архитектуры CodeCampServer?

Я прочитал это и сделал все, что могМожет быть, есть проблема в этой архитектуре.

Я использовал Infrastructure.NHibernate.DataAccess.Bases.Logger.EnsureInitialized(); для инициализации log4net.здесь код:

public class DependencyRegistrar
{
    private static bool _dependenciesRegistered;

    private static void RegisterDependencies()
    {
        ObjectFactory.Initialize(x => x.Scan(y =>
                                                {
                                                    y.AssemblyContainingType<DependencyRegistry>();
                                                    y.AssemblyContainingType<NaakRegistry>();
                                                    y.LookForRegistries();
                                                    y.AddAllTypesOf<IRequiresConfigurationOnStartup>();
                                                }));
        new InitiailizeDefaultFactories().Configure();
    }

    private static readonly object sync = new object();

    internal void ConfigureOnStartup()
    {
        Infrastructure.NHibernate.DataAccess.Bases.Logger.EnsureInitialized();

        RegisterDependencies();
        var dependenciesToInitialized = ObjectFactory.GetAllInstances<IRequiresConfigurationOnStartup>();
        foreach (var dependency in dependenciesToInitialized)
        {
            dependency.Configure();
        }
    }
    public static T Resolve<T>()
    {
        return ObjectFactory.GetInstance<T>();
    }

    public static object Resolve(Type modelType)
    {
        return ObjectFactory.GetInstance(modelType);
    }

    public static bool Registered(Type type)
    {
        EnsureDependenciesRegistered();
        return ObjectFactory.GetInstance(type) != null;
    }

    public static void EnsureDependenciesRegistered()
    {
        if (!_dependenciesRegistered)
        {
            lock (sync)
            {
                if (!_dependenciesRegistered)
                {
                    RegisterDependencies();
                    _dependenciesRegistered = true;

                }
            }
        }
    }
} 

И я вижу файлы журналов, я не могу удалить их при запуске приложения, поэтому я знаю, что они генерируются.Кроме того, когда я регистрируюсь для теста, в журнале есть вход.Например, этот код вводит журнал.

    Bases.Logger.Debug(this, "Debug test!")

Итак, есть ли у CodeCampServer проблемы с архитектурой log4net?

Ответы [ 2 ]

0 голосов
/ 08 февраля 2010

Случайно найденное решение, заменив ссылку forlog4net.dll на ту, которая поставляется с бинами NHibernate, вместо собственной log4net.

Проводной, но у меня есть логи ...:)

0 голосов
/ 02 февраля 2010

Пост выглядит правильно для меня. Вы уверены, что добавили необходимый атрибут уровня сборки?

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

Если это не сработает, возможно, вам следует попробовать:

log4net.Config.XmlConfigurator.Configure();

например, в вашем Application_Start из Global.asax. Если это не сработает, пожалуйста, напишите ваш пример кода.

...