这样配置会引起错误,开始后console上显示文件被另一进程使用,可以问题是main()函数尚未执行,那么这个错误是从哪跑出来的??
ps:比main更早运行的有其他的函数和事件吗?
8 个解决方案
#1
#2
AssemblyInfo.cs 里。
#3
请贴出代码和log4net的配置还有异常信息。
#4
应该是一些Initialize 的动作把。
#5
#6
一个console程序,随便什么内容都行,之后做的改动如下:
using log4net.Repository.Hierarchy; //改动一,加上了这三行,using和attribute
using log4net;//
[assembly: log4net.Config.XmlConfigurator(Watch = true)] //
namespace Monitor
{
class Program
{
static void Main(string[] args)
{
}
}
}
//改动二,加了个app.config,如下,注意fatal和error的文件地址是一样的,为了让它出错
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<!--日志管理-->
<log4net>
<appender name="Fatal" type="log4net.Appender.RollingFileAppender">
<param name="File" value=".\Error\"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyy-MM-dd'.txt'"/>
<param name="RollingStyle" value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d %-3L %-5p - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="levelMin" value="FATAl"/>
<param name="levelMax" value="FATAL"/>
<param name="AcceptOnMatch" value="true"/>
</filter>
</appender>
<appender name="Error" type="log4net.Appender.RollingFileAppender">
<param name="File" value=".\Error\"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyy-MM-dd'.txt'"/>
<param name="RollingStyle" value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d %-3L %-5p - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="levelMin" value="WARN"/>
<param name="levelMax" value="ERROR"/>
<param name="AcceptOnMatch" value="true"/>
</filter>
</appender>
<root>
<appender-ref ref="Fatal"/>
<appender-ref ref="Error"/>
<!--appender-ref ref="Debug"/-->
<appender-ref ref="Info"/>
</root>
</log4net>
</configuration>
把断点设在“ static void Main(string[] args)”上面,然后运行,发现在main函数执行前,console上就有了“log4net:error[RollingFileAppender] Unable to acquire lock on file "C:Users\**\Desktop\project……………….text" 正由另一进程使用,因此该进程无法访问该文件”。这个异常是预料之中的,但是为什么异常会出现在main函数之前呢,我还没运行自己的代码呀
using log4net.Repository.Hierarchy; //改动一,加上了这三行,using和attribute
using log4net;//
[assembly: log4net.Config.XmlConfigurator(Watch = true)] //
namespace Monitor
{
class Program
{
static void Main(string[] args)
{
}
}
}
//改动二,加了个app.config,如下,注意fatal和error的文件地址是一样的,为了让它出错
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<!--日志管理-->
<log4net>
<appender name="Fatal" type="log4net.Appender.RollingFileAppender">
<param name="File" value=".\Error\"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyy-MM-dd'.txt'"/>
<param name="RollingStyle" value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d %-3L %-5p - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="levelMin" value="FATAl"/>
<param name="levelMax" value="FATAL"/>
<param name="AcceptOnMatch" value="true"/>
</filter>
</appender>
<appender name="Error" type="log4net.Appender.RollingFileAppender">
<param name="File" value=".\Error\"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyy-MM-dd'.txt'"/>
<param name="RollingStyle" value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d %-3L %-5p - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="levelMin" value="WARN"/>
<param name="levelMax" value="ERROR"/>
<param name="AcceptOnMatch" value="true"/>
</filter>
</appender>
<root>
<appender-ref ref="Fatal"/>
<appender-ref ref="Error"/>
<!--appender-ref ref="Debug"/-->
<appender-ref ref="Info"/>
</root>
</log4net>
</configuration>
把断点设在“ static void Main(string[] args)”上面,然后运行,发现在main函数执行前,console上就有了“log4net:error[RollingFileAppender] Unable to acquire lock on file "C:Users\**\Desktop\project……………….text" 正由另一进程使用,因此该进程无法访问该文件”。这个异常是预料之中的,但是为什么异常会出现在main函数之前呢,我还没运行自己的代码呀
#7
[assembly: log4net.Config.XmlConfigurator(Watch = true)] //
Here
#8
配置系统初始化的时刻,
XmlConfigurator 只是配置的一种方式,
XmlConfigurator 只是配置的一种方式,
#1
#2
AssemblyInfo.cs 里。
#3
请贴出代码和log4net的配置还有异常信息。
#4
应该是一些Initialize 的动作把。
#5
#6
一个console程序,随便什么内容都行,之后做的改动如下:
using log4net.Repository.Hierarchy; //改动一,加上了这三行,using和attribute
using log4net;//
[assembly: log4net.Config.XmlConfigurator(Watch = true)] //
namespace Monitor
{
class Program
{
static void Main(string[] args)
{
}
}
}
//改动二,加了个app.config,如下,注意fatal和error的文件地址是一样的,为了让它出错
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<!--日志管理-->
<log4net>
<appender name="Fatal" type="log4net.Appender.RollingFileAppender">
<param name="File" value=".\Error\"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyy-MM-dd'.txt'"/>
<param name="RollingStyle" value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d %-3L %-5p - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="levelMin" value="FATAl"/>
<param name="levelMax" value="FATAL"/>
<param name="AcceptOnMatch" value="true"/>
</filter>
</appender>
<appender name="Error" type="log4net.Appender.RollingFileAppender">
<param name="File" value=".\Error\"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyy-MM-dd'.txt'"/>
<param name="RollingStyle" value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d %-3L %-5p - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="levelMin" value="WARN"/>
<param name="levelMax" value="ERROR"/>
<param name="AcceptOnMatch" value="true"/>
</filter>
</appender>
<root>
<appender-ref ref="Fatal"/>
<appender-ref ref="Error"/>
<!--appender-ref ref="Debug"/-->
<appender-ref ref="Info"/>
</root>
</log4net>
</configuration>
把断点设在“ static void Main(string[] args)”上面,然后运行,发现在main函数执行前,console上就有了“log4net:error[RollingFileAppender] Unable to acquire lock on file "C:Users\**\Desktop\project……………….text" 正由另一进程使用,因此该进程无法访问该文件”。这个异常是预料之中的,但是为什么异常会出现在main函数之前呢,我还没运行自己的代码呀
using log4net.Repository.Hierarchy; //改动一,加上了这三行,using和attribute
using log4net;//
[assembly: log4net.Config.XmlConfigurator(Watch = true)] //
namespace Monitor
{
class Program
{
static void Main(string[] args)
{
}
}
}
//改动二,加了个app.config,如下,注意fatal和error的文件地址是一样的,为了让它出错
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<!--日志管理-->
<log4net>
<appender name="Fatal" type="log4net.Appender.RollingFileAppender">
<param name="File" value=".\Error\"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyy-MM-dd'.txt'"/>
<param name="RollingStyle" value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d %-3L %-5p - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="levelMin" value="FATAl"/>
<param name="levelMax" value="FATAL"/>
<param name="AcceptOnMatch" value="true"/>
</filter>
</appender>
<appender name="Error" type="log4net.Appender.RollingFileAppender">
<param name="File" value=".\Error\"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyy-MM-dd'.txt'"/>
<param name="RollingStyle" value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d %-3L %-5p - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="levelMin" value="WARN"/>
<param name="levelMax" value="ERROR"/>
<param name="AcceptOnMatch" value="true"/>
</filter>
</appender>
<root>
<appender-ref ref="Fatal"/>
<appender-ref ref="Error"/>
<!--appender-ref ref="Debug"/-->
<appender-ref ref="Info"/>
</root>
</log4net>
</configuration>
把断点设在“ static void Main(string[] args)”上面,然后运行,发现在main函数执行前,console上就有了“log4net:error[RollingFileAppender] Unable to acquire lock on file "C:Users\**\Desktop\project……………….text" 正由另一进程使用,因此该进程无法访问该文件”。这个异常是预料之中的,但是为什么异常会出现在main函数之前呢,我还没运行自己的代码呀
#7
[assembly: log4net.Config.XmlConfigurator(Watch = true)] //
Here
#8
配置系统初始化的时刻,
XmlConfigurator 只是配置的一种方式,
XmlConfigurator 只是配置的一种方式,