服务器代码
public class RemoteSink : MarshalByRefObject, RemotingAppender.IRemoteLoggingSink
{
public void LogEvents(LoggingEvent[] events)
{
foreach (var loggingEvent in events)
{
LoggingEventData logData = loggingEvent.GetLoggingEventData();
logData.Message = "[" + logData.Domain + "] " + logData.Message;
log4net.LogManager.GetRepository().Log(new LoggingEvent(logData));
}
}
}
private static void SetRemoteLoggingServer()
{
TcpChannel channel = new TcpChannel(15642);
ChannelServices.RegisterChannel(channel, false);
RemotingConfiguration.RegisterWellKnownServiceType(new WellKnownServiceTypeEntry(typeof(RemoteSink), "LoggingSinkInConsoleDaemon", WellKnownObjectMode.SingleCall));
}
Run Code Online (Sandbox Code Playgroud)
和服务器有一个rollingFileAppender
RollingFileAppender rollingFileAppender = new RollingFileAppender();
rollingFileAppender.DatePattern = @"yyyy-MM-dd.lo\g.\tx\t";
rollingFileAppender.RollingStyle = log4net.Appender.RollingFileAppender.RollingMode.Date;
rollingFileAppender.AppendToFile = true;
rollingFileAppender.File = logPath;
rollingFileAppender.Threshold = Level.All;
rollingFileAppender.StaticLogFileName = false;
rollingFileAppender.Layout …Run Code Online (Sandbox Code Playgroud)