Może to jest pomocny (Moving your Log4Net configuration out of web.config with ASP.NET 2.0 web sites.).
Oto elementy, które mogą Cię zainteresować:
Powiedz aplikację do konfiguracji log4net stosując ten plik konfiguracyjny. Tam są naprawdę dwa miejsca na to. Najpierw, plik global.asax, a po drugiej plik assemblyInfo.cs. Zauważ, że większość czasu zaczyna się od pliku globalnego.asax z całym kodem w linii. Z jakiegoś powodu jedyny sposób, w jaki mogłem to zrobić, to złamać plik global.asax, aby użyć kodu , a następnie przypisać plik assembly.fo. . Tak kończy się wygląda tak.
global.asax: <% @ Application Language = "C#" dziedziczy = "GlobalAsax" %> Global.asax.cs (w folderze App_Code):
using System;
using System.Web;
public class GlobalAsax : HttpApplication
{
// you may have lots of other code here
void Application_Start(object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure();
}
}
teraz że twoja aplikacja dzwoni w konfigurację log4net, możesz ustawić atrybut w swoim zespole info, aby log4net wiedział, gdzie szukać pliku konfiguracyjnego, . AssemblyInfo.cs
(w folderze App_Code
):
[assembly:log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
Flaga zegarek opowiada log4net, aby mieć oko na pliku konfiguracyjnego dla potencjalnych zmian. Jest to przydatne, jeśli chcesz zmienić konfigurację z rejestrowania everthing na błędy tylko na podczas próby.
Aby upewnić się, że log4net.config
jest zawsze tam, dodać log4net.config do csproject, i ustawić ją na CopyAlways
. Powinien zostać wyświetlony w folderze debugowania.
Możesz użyć skryptu, aby skopiować wszystko do folderu wydania, lub jeśli używasz projektu instalacji MS, ręcznie dodaj ten plik do projektu. Następnie zostanie dodane odniesienie.
ja właśnie udało się zrobić to z informacjami z http://mitch-wheat.blogspot.com/2007/04/ log4net-net-logging-tool.html, ale teraz mam problem, że instalator nie skopiuje pliku log4net.config podczas instalacji usługi. Jak mogę uzyskać plik log4net.config w moim projekcie instalacji? –
Mój przyjacielu, dałbym ci 1000 punktów, gdybym mógł. Jest piątkowa noc, chcę iść do domu, a moja głupia usługa loguje się, jeśli uruchomiona jako aplikacja konsolowa, ale nie po uruchomieniu z panelu Usługi. I to był brakujący atrybut [assembly]. Dzięki. –
Kiedyś używałem tylko atrybutu assembly dla aplikacji konsolowych, ale wygląda na to, że usługi Windows potrzebują obu atrybutów linii i zespołu 'log4net.Config.XmlConfigurator.Configure();'. – keremispirli