그것은 다음 단계를 따르 실제로 달성하기 매우 쉽습니다 :
장소 별도의 파일
<configuration>
<configSections>
<section name="enterpriseLibrary.ConfigurationSource" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ConfigurationSourceSection, Microsoft.Practices.EnterpriseLibrary.Common, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>
<enterpriseLibrary.ConfigurationSource selectedSource="EntLib Config">
<sources>
<add name="EntLig Config" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.FileConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
filePath="EntLib.config" />
</sources>
</enterpriseLibrary.ConfigurationSource>
</configuration>
에서 엔터프라이즈 라이브러리 구성은 로깅 필터를 추가합니다. 로그 항목 우선 순위 또는 카테고리를 사용하여 로그 항목을 필터링 할 수 있으므로 코드에서 우선 순위 또는 카테고리를 적절히 설정해야합니다. 예를 들어, 1과 같은 매우 중요한 메시지 및 낮은 우선 순위 번호를주고 싶어하고, 더 자세한 메시지는 무시됩니다 런타임에 엔터프라이즈 라이브러리 구성에 10
<configuration>
...
<loggingConfiguration name="Logging Application Block" tracingEnabled="true"
defaultCategory="General" logWarningsWhenNoCategoriesMatch="true">
...
<logFilters>
<add minimumPriority="1" maximumPriority="10" type="Microsoft.Practices.EnterpriseLibrary.Logging.Filters.PriorityFilter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="Priority Filter" />
...
</loggingConfiguration>
</configuration>
변경 될 수 있습니다 -받는 사람 변경을 제외하고 로깅 응용 프로그램 블록. MSDN의이 게시물을 참조하십시오. Updating Configuration Settings at Run-time
필터 값을 전환하는 간단한 도우미 메서드를 구현했습니다. 자세한 메시지를 표시하려면 최대 우선 순위 값을 늘려 해당 항목을 등록 할 수 있습니다. 난 단지 기록 될 예외 또는 다른 매우 중요한 메시지를 할 때 마찬가지로, 나는 Web.config의로 서비스를 다시로드하지 않고 1
var path = System.IO.Path.Combine(Environment.CurrentDirectory, "EntLib.config");
var xd = XDocument.Load(path);
var x = (from z in xd.Root.Elements("loggingConfiguration").Elements("logFilters").Elements() where (z.Attribute("name").Value == "Priority Filter") select z).SingleOrDefault();
x.Attribute("minimumPriority").Value = 1; // Change this value...
x.Attribute("maximumPriority").Value = 5; // ... and this one to specify the range you want to log.
xd.Save(path);
이 엔터프라이즈 라이브러리 로깅 기능을 변경합니다 0에 우선 순위 범위를 설정 결코 만진 적이 없다. 단점은 로그 항목의 우선 순위 지정/범주화를 사용하는 것이 필요하다는 것입니다.
업데이트 된 질문 - 나는 24/7 서버 응용 프로그램을 작성 중이며 다시 시작하지 않고 문제 해결을 위해 다양한 영역에서 로깅을 수행하려고합니다. –
다시 시작하면 구성 재 작성에서 문제가 발생하지 않습니다. 엄청난 거래가 아니며, 주 서버에 SQL을 사용하고 있지만 요청이있을 때 사람들을 놀라게 할 수 있습니다.코드베이스를 살펴 보거나 로깅 창 서비스를 구축하는 것을 고려해 볼 수 있습니다. –