log4net使用代码初始化,日志重复问题

 private void InitializeLog()
        {
            LogManager.GetRepository().ResetConfiguration();
            log4net.Appender.RollingFileAppender appenderForInfo = new log4net.Appender.RollingFileAppender();
            string assemblyPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location.ToString());


            //设置日志名称
            appenderForInfo.Name = "DebugInfo";
            //设置文件路径
            appenderForInfo.File = assemblyPath + "\\debug\\";
            //是否在文件中追加
            appenderForInfo.AppendToFile = true;
            //按照文件的大小进行变换日志文件
            //appenderForInfo.RollingStyle = RollingFileAppender.RollingMode.Size;// 保持一个文件,路径:appenderForInfo.File ="..../*.log"
            appenderForInfo.RollingStyle = RollingFileAppender.RollingMode.Composite;
            //最大变换数量
            appenderForInfo.MaxSizeRollBackups = 100;
            //最大文件大小
            appenderForInfo.MaximumFileSize = "10MB";
            //日志文件名是否为静态
            appenderForInfo.StaticLogFileName = false;
            //日期格式
            appenderForInfo.DatePattern = "'INFO_'yyyy-MM-dd'.log'";
            //设置输出日志格式
            PatternLayout patternLayout = new PatternLayout();
            patternLayout.ConversionPattern = "%d [%t] %-5p %c [%x]  - %m%n";
            appenderForInfo.LockingModel = new FileAppender.MinimalLock();
            //启用正则输出
            patternLayout.ActivateOptions();
            //模式布局
            appenderForInfo.Layout = patternLayout;
            添加日志等级过滤
            //LevelRangeFilter levelRangeFilter = new LevelRangeFilter();
            Level级别由低到高:ALL DEBUG INFO WARN ERROR FATAL None
            //levelRangeFilter.LevelMax = Level.Info;
            //levelRangeFilter.LevelMin = Level.All;
            //appenderForInfo.AddFilter(levelRangeFilter);
            appenderForInfo.Threshold = log4net.Core.Level.Debug;
            //启用当前配置 
            appenderForInfo.ActivateOptions();
            //设置到配置
            log4net.Config.BasicConfigurator.Configure(appenderForInfo);
            string text = "日志文件初始化成功";
            LogInfo.Info(text);
            // WriteLog(text);
            //  WriteLog(" assemblyPath=" + assemblyPath);
        }

这个函数最好之初始化一次,否则初始化几次,同一条信息会重复几次;

但加上如下一句可以解决重复的问题

 LogManager.GetRepository().ResetConfiguration();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本版本自己实现Raize控件组中TCheckTree,并将所有与Raize控件相关代码更新,现在的版本不使用任何的第三方组件,DELPHI7下直接编译通过。这里要注意的是系统的初始密码,您如果看代码,在uAuthAppFactory单元,有一个CreateUser方法,在这个方法内部,会首先查找程序目录有没有用户数据文件,如果没有的话,就会初始化一个拥有所有操作权限的Administrator用户,密码就是administrator,您只要使用Administrator登录就可以了。uAuthAppFactory单元及其它单元的作用可以参见下面文档的说明。  工程文件位于“Instance”目录,User.dat是用户数据文件,所有的用户组、用户都保存在这个文件里(密码也用的明文保存)。“日志”目录保存所有的目录,每一位用户每次的使用都会有日志记录如果想要下载演示,可以上一次的版本,里面有一个很长时间的演示期待着您的参与DELPHI社群中开源项目少之又少,我们可不可以自己组织?我们可不可以一起探讨?小弟不才,斗胆写下几行代码,来这里期待抛砖引玉。我们身边,每天都有无数的项目开工,然后是老板对进度的紧追不舍,项目经理程序员加班的无奈,再然后或许是成功的喜悦或许是失败的哀愁,但不管结果如何,所有人心中此时最想要的,可能是好好的睡上一觉。这无数的项目,他们有没有共同点?我们是不是一直在做重复发明轮子的蠢事?Delphi让我们搭建一个程序变得容易,我希望通过我们的努力,让我们搭建一个项目更容易,利用我们可以想到的任何办法,不管是框架源代码、模版文档、代码生成工具甚至是我们手把手经验的交流,我们的目标就是让一个项目开发更加的容易、让一个项目成功更加的容易。这样的工作是激动人心的,可是我也和大家一样,面临着手头上项目的压力,为了能够对得起那份薪水,我只能够在下班的时间里做这些。但一个人精力太有限了,uPattern是一个模式实现单元,没有足够的时间也没有那么多精力去实现所有的模式,于是在这份源代码里,您发现您可以使用一个用户组来登录,本来这是不允许的啊,如果您想找到原因,原来uPattern中对于合成模式的实现使用的是原始的透明方式……一个人的力量太有限了,一个人的才智也太有限了,如果这个小生命在我一个人的手里,也许会因为得不到充足的阳光雨露而不能茁壮成长,但是如果有您的加入,多了您的呵护,相信我们的目标才更有可能实现。如果您是高手,那么就在这里表现您的聪明才智吧。如果您是菜鸟,来这里汲取知识吧。所有的源代码都永久性公开,如果您有什么地方不清楚或者是有更好的建议,您也可以直接联系我。――――――――――――――――――――――――――――――――――这是一个应用程序框架,现在已经完成部分框架代码与用户管理、权限管理与日志管理模块。如果您有任何的问题或者是建议可以发邮件到我的邮箱,您可以使用本源代码在您的任何应用之中(包括商业应用)。如果您想要和我们一起来发展壮大这份源代码,请您发邮件给我([email protected]),或者是在下面留言。――――――――――――――――――――――――――――――――――    uClasses------------------------------在这里定义应用程序中的基础类    uPattern------------------------------几个模式的DELPHI实现或者定义    uAppUtils-----------------------------应用程序工具单元    uAppSet-------------------------------应用程序设置接口声明单元    uAppSetIniFile------------------------应用程序设置IniFile实现单元    uException----------------------------异常统一处理单元    uAppFactory---------------------------应用程序工厂,本工厂生产出来的就是一个一般的应用程序    uAuthAppFactory-----------------------应用程序工厂,本工厂生产出来的就是拥有权限管理、日志及用户管理的程序 ufrmAppBase---------------------------窗口基类 ufrmAppDlgBase------------------------对话框窗口基类    用户、权限与日志管理单元    Role----------------------------------权限与用户管理主要的实现单元    Log-----------------------------------日志管理单元    ufrmRoleManager-----------------------权限管理主用户界面    ufrmLogin-----------------------------用户登录界面    ufrmChangePassword--------------------更改用户密码    ufrmLog-------------------------------日志查看界面 CommandRegister-----------------------模块注册中心

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值