windows服务及log4net记录日志的操作记录

每次要写个windows服务时总是忘记一些细节,于是又去百度搜,其实并不复杂,于是这次自己简单整理下,记录下操作步骤,没任何技术含量,只是简单记录:

一.添加windows服务

1.设计页面,右键添加安装程序

2.右键serviceInstaller,修改几个属性:

3.右键serviceProcessInstaller1,修改account属性:

4.修改service1.cs服务名称与serviceInstall中服务名称的属性一致

5.service1.cs代码中,添加计时器,完善逻辑代码,

protected override void OnStart(string[] args)
        {
            System.Timers.Timer timer = new System.Timers.Timer();//添加一个计时器
            timer.Elapsed += ShowDate; //绑定事件
            timer.Interval = 10 * 1000;//间隔多久执行一次服务,单位毫秒
            timer.Enabled=true;        //这一点不要忘记

        }

        protected override void OnStop()
        {
        }

        private void ShowDate(object sender, System.Timers.ElapsedEventArgs e)
        {
            log.Info("当前时间:" + DateTime.Now.ToString(CultureInfo.InvariantCulture));
        }

 

6.安装与运行:

进入如下目录:C:\Windows\Microsoft.NET\Framework64\v4.0.30319,将InstallUtil.exe复制到改windows服务bin/debug下:

7.cmd命令窗口(管理员身份运行),进入到该debug目录下,之后的安装,运行命令如下:

安装:InstallUtil.exe WindowsDemo0205.exe

卸载:InstallUtil.exe -u WindowsDemo0205.exe

运行:net start MyService

停止:net stop MyService

二.加入log4Net记录日志

1.nuget包工具给项目添加log4Net

2.修改配置文件App.config,添加相关节点

3.使用log记录日志的代码页面类中添加日志记录对象:

private static readonly log4net.ILog log =
            log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

 4.最容易忽视且最重要一点,Properties下的AssemblyInfo.cs文件添加如下代码:

[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]

控制台应用程序中也要注意别忘记修改AssemblyInfo.cs文件。

 

PS:如果是Web程序,Global配置文件下,Application_Start方法中添加代码(log4net.config配成了一个单独文件):

protected void Application_Start(object sender, EventArgs e)
        {
            log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(Server.MapPath("/log4net.config")));
        }

 

以上内容仅作备忘记录

 

posted on 2018-02-05 11:23  HandyWang  阅读(2969)  评论(0编辑  收藏  举报

导航