【问题标题】:RemotingConfiguration lock my file, how to use log4net's RemotingAppender?RemotingConfiguration 锁定我的文件,如何使用 log4net 的 RemotingAppender?
【发布时间】:2013-09-24 08:26:43
【问题描述】:

client.cs

    RemotingAppender remotingAppender = new RemotingAppender();
    remotingAppender.Sink = "tcp://localhost:15642/LoggingSinkInConsoleDaemon";
    remotingAppender.BufferSize = 1;
    remotingAppender.ActivateOptions();
    BasicConfigurator.Configure(remotingAppender);
    log.Info("everything is ok!");

server.cs

    LogManager.GetRepository().PluginMap.Add(new Plugin.RemoteLoggingServerPlugin("LoggingSinkInConsoleDaemon"));

client.exe登录到server.exe,一切正常,client.exe退出后,我使用Unlocker.exe(可以找到here)发现client.exe被server.exe锁定(其中表示我还不能删除client.exe,因为它被server.exe使用),我找到了由RemotingAppender引起的错误,但我不知道如何解决。

我认为 Remoting 处理了 RemotingAppender 的请求,它已经锁定了 client.exe,我该如何释放锁定?

=======================更新1======================= =============

client.cs

    var repo = LogManager.GetRepository();
    var app = repo.GetAppenders().Where(x => x.GetType() == typeof(RemotingAppender)).FirstOrDefault();
    var remotingAppender = app as RemotingAppender;

    var root = ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Root;
    var attachable = root as IAppenderAttachable;
    attachable.RemoveAppender(remotingAppender);

我在上面试过了,但我丢失了我的日志。

我搜索源,RemoveAppender从列表中删除记录器,所以它没有解决问题

【问题讨论】:

    标签: c# log4net remoting


    【解决方案1】:

    我完全不确定,但您是否尝试过 remotingAppender.Close();什么时候完成?

    【讨论】:

    • 和 LogManager.Shutdown() ?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 2018-07-18
    • 1970-01-01
    • 2011-07-28
    • 2014-11-09
    • 2011-11-26
    • 1970-01-01
    相关资源
    最近更新 更多