Наследование: log4net.Appender.FileAppender
Пример #1
0
        static void Main()
        {
            Application.ThreadException += (sender, e) =>
            {
                EapLogger.Error(e.Exception);
            };

            AppDomain.CurrentDomain.UnhandledException += (sender, e) =>
            {
                EapLogger.Error(e.ExceptionObject as Exception);
                if (e.IsTerminating)
                {
                    MessageBox.Show(e.ExceptionObject.ToString(), "程式發生嚴重錯誤而終止");
                }
            };

            var fileAppender = new RollingLogFileAppender
            {
                Layout = new PatternLayout("%date{HH:mm:ss,fff} %-6level [%4thread] %message%newline")
            };

            fileAppender.ActivateOptions();
            var l = (Logger)LogManager.GetLogger("EAP").Logger;

            l.Level = Level.All;
            l.Repository.RendererMap.Put(typeof(SecsMessageLogInfo), new SecsMessageRenderer());
            l.Repository.Threshold  = Level.All;
            l.Repository.Configured = true;
            l.AddAppender(fileAppender);

            RemotingConfiguration.CustomErrorsMode = CustomErrorsModes.Off;
            ChannelServices.RegisterChannel(
                new TcpChannel(
                    new Hashtable {
                ["port"] = 0, ["bindTo"] = Settings.Default.TcpBindTo
            },
                    null,
                    new BinaryServerFormatterSinkProvider {
                TypeFilterLevel = TypeFilterLevel.Full
            }),
                false);

            bool newMutexCreated;

            using (new Mutex(true, "EAP" + EAPConfig.Instance.ToolId, out newMutexCreated))
            {
                if (!newMutexCreated)
                {
                    MessageBox.Show($"系統中已經執行了EAP:{EAPConfig.Instance.ToolId}啟動錯誤");
                    return;
                }
                EapLogger.Info("__________________ EAP Started __________________");

                var form = new HostMainForm();
                RemotingServices.Marshal(form, EAPConfig.Instance.ToolId, typeof(ISecsDevice));
                PublishZService();

                Application.Run(form);
                EapLogger.Info("___________________ EAP Stop ____________________");
            }
        }