2010-07-01 49 views
2

如果有人善意澄清我的困惑,我真的会感到厌烦。我正在一家开发和监控.NET框架中的预付费重装系统的公司实习,目前我们正在使用C#,并且我需要研究log4net并帮助他们将日志框架从简单的日志记录提升到高级日志记录,和布局。到目前为止,我被告知调查log4net。我阅读教程和基本我用控制台应用程序和简单的Web应用程序完成它,但问题是日志发生时,我运行应用程序,我不想要的,因为应用程序已经运行在服务器上。有些人会告诉我一种方法来实现日志记录,而无需调试应用程序并使其登录入口点。我非常困惑,因为整个事情都是新的。在此先感谢如何为我们在我们的服务器上开发和运行的应用程序配置log4net?

回答

1

如果他们希望您使用log4net,他们会很乐意重新启动服务器上的更新程序。毕竟,你会想实际上将日志记录添加到你想要记录的程序中。因此,如果您使用的是log4net配置文件,您的程序将监听该文件,并且可以随时更改它,而无需重新启动或重新编译应用程序。这将立即生效,因此您获得了极大的灵活性。

如果您想要集中监视事物,可以考虑将所有内容都记录到数据库中。我使用Log4View(商业程序)和他们的TCP远程,这很好。

+0

感谢迈克尔对直接答复。 我将指导我的研究以xml格式配置log4net。 还有一个问题。 如果我使用xml文件配置log4net,是否需要将它放在每个应用程序的根目录中?或者我可以保存在我的目录中,并在我的程序集中引用它,将它引导到位置(例如“C://logfile.config”),以便我可以创建一次配置文件,而不是复制到所有应用程序。 它是否可行? – Precious 2010-07-01 04:13:31

+0

如果您将它放在与可执行文件相同的目录中,您可以转到AssemblyInfo.cs并添加一行代码来监视它。否则,您将不得不手动连接配置。我希望这有助于! – 2010-07-01 17:47:21

2

你需要建立的是一个接收器。 Log4net有一个插件架构,它支持你描述的内容。更多的文档是在这里:

http://logging.apache.org/log4net/release/manual/plugins.html

摘录:
RemoteLoggingServerPlugin

创建远程日志接收器,它可以 接收来自 RemotingAppender记录事件。创建一个远程日志接收器 。必须将单个参数 传递给 指定接收器URI的构造函数。这是一个名称 用于识别日志记录接收器 通过远程发布的对象和必须 与客户商定之前 通信可以发生。

实例:

LogManager.GetRepository().PluginMap.Add 
    (new RemoteLoggingServerPlugin("LoggingSink")); 
+0

谢谢code4life 我会看看这一个。该文档包含初学者的最低信息,但我会谷歌,并尝试找到详细的文章。 – Precious 2010-07-01 04:25:03

相关问题