簡體   English   中英

在Visual Studio 2010中為RavenDB配置/安裝log4net

[英]Configuring/Installing log4net for RavenDB in Visual Studio 2010

我正在嘗試配置我的C#項目以將log4net用於RavenDB 我已經有log4net使用FileAppender,但RavenAppender現在似乎沒有工作。 以下是我到目前為止所采取的步驟:

第1步:安裝log4net.Raven

我使用以下NuGet Package Manager控制台指令安裝了log4net.Raven庫(取自上面鏈接的包網站):

Install-Package log4net.Raven

該命令將log4net.Raven庫添加到我的項目引用中。

第2步:配置Web.config

在我的Web.config文件中,我有以下設置,其中大部分都是從GitHub上log4net.Raven項目的README文件中復制和粘貼的( log4net.Raven的所有者也在他的博客上發布了類似的配置設置 ):

<!-- Example connection string config from blog -->
<configsections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net">
</configsections>
<connectionstrings>
  <add connectionstring="Url=http://raven; DefaultDatabase=Log" name="RavenLogs">
    <add connectionstring="Url=http://localhost:8080;user=asa;password=asa" name="SecureRaven">
    </add>
  </add>
</connectionstrings>

<!-- My current config -->
<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<connectionStrings>
    <add name="RavenDB" connectionString="Url=http://localhost:8080;Database=MyDatabase" />
</connectionStrings>

<!-- Example log4net config from README.
My project uses these settings except for the connectionString value,
which is set to "RavenDB" to match the setting name above.
-->
<log4net>
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
        <!-- LogFileAppender settings here -->
    </appender>
    <appender name="RavenAppender" type="log4net.Raven.RavenAppender">
        <filter type="log4net.Filter.LevelRangeFilter">
            <levelMin value="INFO" />
            <levelMax value="FATAL" />
        </filter>
        <connectionString value="RavenDB"/>
        <maxNumberOfRequestsPerSession value="100"/>
        <bufferSize value="50" />
        <evaluator type="log4net.Core.LevelEvaluator">
            <threshold value="ERROR" />
        </evaluator>
    </appender>
    <root>
        <level value="ALL"/>
        <appender-ref ref="LogFileAppender" />
        <appender-ref ref="RavenAppender" />
    </root>
</log4net>

第3步:從C#代碼中記錄

在我的C#代碼中,我有以下內容:

public class FooController : Controller
{
    private static ILog _log = LogManager.GetLogger(typeof(FooController));

    public ActionResult Index()
    {
        _log.Info("Hello World!");
        return View("Index");
    }
}

該代碼將寫入我工作站上的日志文件,因此我知道log4net通常正常工作。 但是對於RavenDB,我一直在Web瀏覽器中通過Raven工作室檢查MyDatabase的文檔和日志,我沒有看到任何帶有“Hello World”消息的Info級別日志。

有沒有人知道問題可能是什么以及如何解決?

可能問題出在這里:

<appender name="LogFileAppender" type="log4net.Appender.FileAppender">

如果您的項目中沒有名為FileAppender的類,則需要在FileAppender中添加庫名,例如:

<appender name="LogFileAppender"
          type="log4net.Appender.FileAppender, log4net.Raven">

(type的語法是=" Fully qualified class name , assembly file name , version , culture , public key token "

嘗試調試log4net,如Log4Net疑難解答如果你找到這一行:

log4net: Adding appender named [RavenAppender] to logger [root].

RavenAppender正在工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM