我正在尝试使用File来使log4net工作。
我对消息使用指定的模式布局,但问题是日志文件中没有文本。只有“?”符号
在写入文件之前,消息文本似乎以某种方式被破坏了。
我在windows 2008上使用Visual 2008。log4net在global.asax中初始化。
这是我对log4net的配置
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"></section>
. . .
<log4net debug="true">
<appender name="INFOFileAppender" type="log4net.Appender.FileAppender">
<lockingmodel type="log4net.Appender.FileAppender+MinimalLock"/>
<threshold value="INFO" />
<file value="AOKlogs.txt" />
<appendtofile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="ALLL" />
<appender-ref ref="INFOFileAppender" />
</root>
</log4net>我尝试过滚动文件和简单的文件附件,但没有运气。
UPDATE I启用调试并配置log4net将调试日志写入txt文件。下面是上面的内容:
我在txt文件中启用了调试日志,如下所示:
log4net: log4net assembly log4net,Version=1.2.10.0,Culture=neutral,PublicKeyToken=1b44e1d426115821.从C:\Users\ScarryComp\AppData\Local\Temp\Temporary ASP.NET Files\website1\7e2bf4c4\4d1a1e05\assembly\dl3\c6bded9b\0086655c_d353c601\log4net.DLL. ( Microsoft 6.1.7600.0上的.NET运行时2.0.50727.4952 )加载log4net: DefaultRepositorySelector: defaultRepositoryType log4net.Repository.Hierarchy.Hierarchy log4net: DefaultRepositorySelector:为程序集App_Code.ch9yol_l、Version=0.0.0.0、Culture=neutral、PublicKeyToken=null log4net: DefaultRepositorySelector: AssemblyApp_Code.ch9yol_l、Version=0.0.0.0、log4net、从C:\Users\ScarryComp\AppData\Local\Temp\Temporary ASP.NET Files\website1\7e2bf4c4\4d1a1e05\App_Code.ch9yol_l.dll log4net: DefaultRepositorySelector: Assembly App_Code.ch9yol_l、Version=0.0.0.0、Culture=neutral、PublicKeyToken=null加载的PublicKeyToken=null没有指定RepositoryAttribute。log4net: DefaultRepositorySelector:程序集App_Code.ch9yol_l、Version=0.0.0.0、Culture=neutral、PublicKeyToken=null使用存储库log4net-默认存储库和存储库类型log4net.Repository.Hierarchy.Hierarchy log4net: DefaultRepositorySelector:创建存储库log4net-默认-存储库使用类型log4net.Repository.Hierarchy.Hierarchy log4net: XmlConfigurator:配置存储库log4net-默认-存储库使用.config文件节log4net: XmlConfigurator: Application文件为C:\Users\ScarryComp\Documents\VisualStudio2008\WebSites\WebSite1\web.config\ log4net: Configuration Repositorylog4net-默认-存储库::配置更新模式合并。log4net: XmlHierarchyConfigurator:记录器根级字符串就是全部。log4net: XmlHierarchyConfigurator: Logger根级别设置为name="ALL",value=-2147483648。log4net: XmlHierarchyConfigurator:加载附录INFOFileAppender类型: log4net.Appender.FileAppender log4net: XmlHierarchyConfigurator:将属性LockingModel设置为对象log4net.Appender.FileAppender+MinimalLock log4net: XmlHierarchyConfigurator:将属性阈值设置为级别值所有log4net: XmlHierarchyConfigurator:将属性文件设置为字符串值AOKlogs.txt log4net: XmlHierarchyConfigurator:将属性AppendToFile设置为布尔值,True log4net: AppendToFile:参数布局指定的子类型log4net::转换器文本选项存储格式min=-1,,leftAlign=False log4net: XmlHierarchyConfigurator:将属性布局设置为PatternLayout值log4net.Layout.PatternLayout log4net: FileAppender:用于编写C:\Users\ScarryComp\Documents\Visual 2008\WebSites\WebSite1\AOKlogs.txt的打开文件,附加True log4net: XmlHierarchyConfigurator: Created appender log4net: XmlHierarchyConfigurator:将名为INFOFileAppender的附录添加到记录器根。log4net: XmlHierarchyConfigurator: l Console类型: log4net.Appender.ConsoleAppender log4net: PatternParser格式min=-1,max=2147483647,leftAlign=False log4net: PatternParser格式min=-1,max=2147483647,leftAlign=False log4net: XmlHierarchyConfigurator:将属性ConversionPattern设置为字符串值%d %-5l - %m%n log4net: PatternParser: log4net选项[] Format min=-1,max=2147483647,log4net::转换器文本选项格式min=-1,,en22#:l选项[]格式,,#en27##en28:转换器文字选项- min=-1,max=2147483647,leftAlign=False log4net: PatternParser: PatternParser m选项[] Format m选项[] Format min=-1,max=2147483647,leftAlign=False log4net: PatternParser: PatternParser n选项[]Format min=-1,max=2147483647,leftAlign=False log4net: XmlHierarchyConfigurator:将属性布局设置为对象log4net.Layout.PatternLayout log4net: XmlHierarchyConfigurator: Created Appender log4net: XmlHierarchyConfigurator: appender命名控制台到记录器根。log4net: XmlHierarchyConfigurator:层次阈值[]
我更改了控制台附加程序,但日志中仍然没有看到文本:
更新2:文件附加程序没有工作,但是跟踪附录看起来还可以。然而,如果有什么东西能解释文件附加程序会发生什么,那就太好了,所以这个问题还没解决。
发布于 2010-12-21 13:18:18
我可以想象你有编码问题。默认情况下,Log4net使用ANSI编码,如果服务器(或服务)和计算机不使用相同的编码,则无法读取文件中的文本。
您可以尝试像这样配置编码:
<appender name="INFOFileAppender" type="log4net.Appender.FileAppender">
<encoding value="unicodeFFFE" />
...发布于 2010-12-19 22:05:42
您的级别值似乎是错误的,您可以尝试使用相同的配置来代替吗?
<root>
<level value="ALL" />
<appender-ref ref="INFOFileAppender" />
</root>https://stackoverflow.com/questions/4485066
复制相似问题