RemotingConfiguration lock my file, how to use log4net's

本文关键字:log4net use to my lock file how RemotingConfiguration | 更新日期: 2023-09-27 18:32:37

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!");

服务器.cs

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

客户端.exe登录到服务器.exe,一切正常,客户端退出后.exe我使用Unlocker.exe(可以在这里找到)找到该客户端.exe被服务器.exe锁定(这意味着我无法删除客户端.exe因为它被服务器.exe使用),我找到了由RemotingAppender引起的错误,但我不知道如何解决。

我认为远程处理处理远程处理Appender的请求,并且它已锁定客户端.exe,如何释放锁?

======================更新

1==

============================================

客户端.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);

我在上面尝试过它的工作,但我丢失了我的日志。

我搜索源,删除Appender从列表中删除记录器,因此无法解决问题

RemotingConfiguration lock my file, how to use log4net's

我完全不确定,但你有没有尝试过远程处理Appender.Close(); 当你完成它时?