首页 文章

log4net消息文本问题

提问于
浏览
0

我正在尝试使用File Appender使log4net工作 .

我为消息使用指定的模式布局,但问题是我的日志文件中没有文本 . 只要 '??'符号

在写入文件之前,似乎消息文本以某种方式被破坏了 .

我在Windows Server 2008上使用Visual Studio 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>

我没有运气就尝试过rollfile和简单文件appender .

UPDATE 我启用了调试并配置了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 Windows NT 6.1.7600.0上的.NET Runtime [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:Assembly [App_Code.ch9yol_l,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null]从[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]没有指定RepositoryAttribute . log4net:DefaultRepositorySelector:Assembly [App_Code.ch9yol_l,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null]使用repository [log4net-default-repository]和repository type [log4net.Repository.Hierarchy.Hierarchy] log4net:DefaultRepositorySelector:Creating repository [log4net-default-repository]使用类型[log4net.Repository.Hierarchy.Hierarchy] log4net:XmlConfigurator:使用.config文件部分log4net配置存储库[log4net-default-repository]:XmlConfigurator:应用程序配置文件是[C:\ Users \ ScarryComp \ Documents \ Visual Studio 2008 \ WebSites \ WebSite1 \ web.config] log4net:XmlConfigurator:配置存储库[log4net-default-repository] log4net:XmlHierarchyConfigurator:配置更新模式[Merge] . log4net:XmlHierarchyConfigurator:Logger [root]级别字符串为[ALL] . log4net:XmlHierarchyConfigurator:Logger [root]级别设置为[name =“ALL”,value = -2147483648] . log4net:XmlHierarchyConfigurator:加载Appender [INFOFileAppender]类型:[log4net.Appender.FileAppender] log4net:XmlHierarchyConfigurator:将Property [LockingModel]设置为object [log4net.Appender.FileAppender MinimalLock] log4net:XmlHierarchyConfigurator:将Property [Threshold]设置为Level值[ ALL] log4net:XmlHierarchyConfigurator:将Property [File]设置为String值[AOKlogs.txt] log4net:XmlHierarchyConfigurator:将Property [AppendToFile]设置为布尔值[True] log4net:XmlHierarchyConfigurator:参数[layout]指定子类型[log4net.Layout.PatternLayout ] log4net:PatternParser:Converter [literal] Option [] Format [min = -1,max = 2147483647,leftAlign = False] log4net:XmlHierarchyConfigurator:将Property [Layout]设置为PatternLayout值[log4net.Layout.PatternLayout] log4net:FileAppender:打开文件[C:\ Users \ ScarryComp \ Documents \ Visual Studio 2008 \ WebSites \ WebSite1 \ AOKlogs.txt]追加[True] log4net:XmlHierarchyConfigurator:C reated Appender [INFOFileAppender] log4net:XmlHierarchyConfigurator:将名为[INFOFileAppender]的appender添加到logger [root] . log4net:XmlHierarchyConfigurator:加载Appender [控制台]类型:[log4net.Appender.ConsoleAppender] log4net:PatternParser:Converter [message]选项[]格式[min = -1,max = 2147483647,leftAlign = False] log4net:PatternParser:Converter [ newline]选项[]格式[min = -1,max = 2147483647,leftAlign = False] log4net:XmlHierarchyConfigurator:将属性[ConversionPattern]设置为字符串值[%d%-5l - %m%n] log4net:PatternParser:Converter [ d]选项[]格式[min = -1,max = 2147483647,leftAlign = False] log4net:PatternParser:Converter [literal]选项[]格式[min = -1,max = 2147483647,leftAlign = False] log4net:PatternParser: Converter [l] Option [] Format [min = 5,max = 2147483647,leftAlign = True] log4net:PatternParser:Converter [literal] Option [ - ] Format [min = -1,max = 2147483647,leftAlign = False] log4net: PatternParser:Converter [m] Option [] Format [min = -1,max = 2147483647,leftAlign = False] log4net:PatternParser:Converter [n] Option [] Format [min = -1,max = 2147483647,leftAlign = False] log4ne t:XmlHierarchyConfigurator:将Property [Layout]设置为object [log4net.Layout.PatternLayout] log4net:XmlHierarchyConfigurator:Created Appender [Console] log4net:XmlHierarchyConfigurator:将名为[Console]的appender添加到logger [root] . log4net:XmlHierarchyConfigurator:层次结构门槛[]

我更改了添加的控制台appender但我仍然看不到我的日志中的文字:(

UPDATE 2: 文件追加器没有工作,但跟踪appender似乎没问题 . 但是,如果someboydy可以解释文件appender会发生什么,那么这将是很好的,所以这个问题仍然有点开放

2 回答

  • 1

    我可以想象你有一个编码问题 . Log4net默认使用ANSI编码,如果您的服务器(或服务)和您的机器不使用相同的编码,则无法读取文件中的文本 .

    您可以尝试像这样配置编码:

    <appender name="INFOFileAppender" type="log4net.Appender.FileAppender">
        <encoding value="unicodeFFFE" />
        ...
    
  • 1

    您的级别值似乎是错误的,您可以尝试使用相同的配置吗?

    <root>
        <level value="ALL" />
        <appender-ref ref="INFOFileAppender" />
    </root>
    

相关问题