AppHarbor 和 Logentries 中的后台应用程序



现在我在AppHarbor中有一个Web应用程序和3个后台应用程序。我想使用日志条目将每个应用程序记录在不同的位置。根据 AppHarbor 的日志条目文档 https://logentries.com/doc/appharbor/令牌密钥是从 AppHarbor 强制执行的 web.config 和 app.config [配置变量] 中读取的。

如何配置每个应用程序以登录不同的日志位置(例如。Appharbor/website, AppHarbor/Console1, AppHarbor/Console2)?

您可以通过在

追加器/目标定义中指定令牌来覆盖 AppHarbor 注入的配置变量。不确定您使用的是哪个框架,但如果是 NLog,那么您在 web/app.config 中有此行的位置

<target name="logentries" type="Logentries" debug="true" layout="${date:format=ddd MMM dd} ${time:format=HH:mm:ss} ${date:format=zzz yyyy} ${logger} : ${LEVEL}, ${message}"/>

添加 token="abc",以便您拥有以下内容:

<target name="logentries" type="Logentries" debug="true" token="abc" layout="${date:format=ddd MMM dd} ${time:format=HH:mm:ss} ${date:format=zzz yyyy} ${logger} : ${LEVEL}, ${message}"/>

然后,如果您使用的是log4net插件,则有以下部分:

<appender name="LeAppender" type="log4net.Appender.LogentriesAppender, LogentriesLog4net"> <Debug value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d{ddd MMM dd HH:mm:ss zzz yyyy} %logger %: %level%, %m" /> </layout> </appender>

添加,以便您拥有以下内容:

<appender name="LeAppender" type="log4net.Appender.LogentriesAppender, LogentriesLog4net"> <Debug value="true" /> <Token value="abc" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d{ddd MMM dd HH:mm:ss zzz yyyy} %logger %: %level%, %m" /> </layout> </appender>

此处设置的令牌值将优先于 Appharbor 注入的值,因此对于具有自己的 web/app.config 的每个应用,您可以使用此方法输入自己的令牌。

我发现我可以通过以下行在运行时设置令牌:

private static readonly ILog log = log4net.LogManager.GetLogger(typeof(Program));
appender = (LogentriesAppender)log.Logger.Repository.GetAppenders()[0];
appender.Token = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
//now log method will use my token 
log.Info("Hello World");

相关内容

  • 没有找到相关文章

最新更新