问题1:封装log4net成一个写文本库LogHelper,然后winform调用时候执行写入没有写入。
解决方法1:将LogHelper的配置文件拷到winform的根目录即可。
解决方法2:将配置文件的内容写到winform里面,然后LogHelper类库的AssemblyInfo内添加
[assembly: log4net.Config.XmlConfigurator(Watch = true)],意思就是说让这个库去调用调用者的config配置文件
(//[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]这个不行,可能是ConfigFileExtension = "config"这句名称不对应)
解决方法3:软件打开时候加载制定目录加载配置文件(“LogHelper.dll”是配置文件XML)
这时候也必须需要AssemblyInfo内添加[assembly: log4net.Config.XmlConfigurator(Watch = true)]
private void Form1_Load(object sender, EventArgs e)
{
string Path_X = @"C:\Users\Administrator\Desktop\WindowsFormsApplication17\LogHelper\bin\Debug\LogHelper.dll";
System.IO.FileInfo file = new System.IO.FileInfo(Path_X);
//LogHelper.LogHelper LogHelper_ = new LogHelper.LogHelper();
LogHelper.LogHelper.SetConfig(file);
}
附件:配置文件代码
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<logger name="logerror">
<level value="ERROR" />
<appender-ref ref="ErrorAppender" />
</logger>
<logger name="loginfo">
<level value="INFO" />
<appender-ref ref="InfoAppender" />
</logger>
<logger name="logdebug">
<level value="DEBUG" />
<appender-ref ref="DebugAppender" />
</logger>
<logger name="logwarn">
<level value="WARN" />
<appender-ref ref="WarnAppender" />
</logger>
<logger name="logfatal">
<level value="FATAL" />
<appender-ref ref="FatalAppender" />
</logger>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\LogError\\" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<param name="MaxFileSize" value="10240" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd".txt"" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n" />
</layout>
<!--< > = <> %n = 回车-->
</appender>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\LogInfo\\" />
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="10240" />
<param name="MaxSizeRollBackups" value="100" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd".txt"" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p %n日志内容:%m%n%n" />
</layout>
</appender>
<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\LogDebug\\" />
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="10240" />
<param name="MaxSizeRollBackups" value="100" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd".txt"" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p %n日志内容:%m%n%n" />
</layout>
</appender>
<appender name="WarnAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\LogWarn\\" />
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="10240" />
<param name="MaxSizeRollBackups" value="100" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd".txt"" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p %n日志内容:%m%n%n" />
</layout>
</appender>
<appender name="FatalAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\LogFatal\\" />
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="10240" />
<param name="MaxSizeRollBackups" value="100" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd".txt"" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="日志时间:%d %n日志级别:%-5p %n日志内容:%m%n%n" />
</layout>
</appender>
</log4net>
winform调用程序:
try
{
LogHelper.LogHelper.WriteLog("正常日志记录!");
LogHelper.LogHelper.WriteDebug("调试日志记录!");
int a = Convert.ToInt32("ZZZ");
}
catch (Exception ex)
{ LogHelper.LogHelper.WriteLog("错误日志记录!", ex); }