Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / SMDiagnostics / System / ServiceModel / Diagnostics / PiiTraceSource.cs / 1 / PiiTraceSource.cs
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.ServiceModel.Diagnostics
{
using System.Configuration;
// using System.ServiceModel.Channels;
using System.Diagnostics;
using System.ServiceModel.Configuration;
class PiiTraceSource : TraceSource
{
string eventSourceName = String.Empty;
internal const string LogPii = "logKnownPii";
bool shouldLogPii = false;
bool initialized = false;
object localSyncObject = new object();
internal PiiTraceSource(string name, string eventSourceName)
: base(name)
{
#pragma warning disable 618
AssertUtility.DebugAssert(!String.IsNullOrEmpty(eventSourceName), "Event log source name must be valid");
#pragma warning restore 618
this.eventSourceName = eventSourceName;
}
internal PiiTraceSource(string name, string eventSourceName, SourceLevels levels)
: base(name, levels)
{
#pragma warning disable 618
AssertUtility.DebugAssert(!String.IsNullOrEmpty(eventSourceName), "Event log source name must be valid");
#pragma warning restore 618
this.eventSourceName = eventSourceName;
}
void Initialize()
{
if (!this.initialized)
{
lock (localSyncObject)
{
if (!this.initialized)
{
string attributeValue = this.Attributes[PiiTraceSource.LogPii];
bool shouldLogPii = false;
if (!string.IsNullOrEmpty(attributeValue))
{
if (!bool.TryParse(attributeValue, out shouldLogPii))
{
shouldLogPii = false;
}
}
if (shouldLogPii)
{
#pragma warning disable 618
EventLogger logger = new EventLogger(this.eventSourceName, null);
#pragma warning restore 618
if (MachineSettingsSection.EnableLoggingKnownPii)
{
logger.LogEvent(TraceEventType.Information,
EventLogCategory.MessageLogging,
EventLogEventId.PiiLoggingOn,
false);
this.shouldLogPii = true;
}
else
{
logger.LogEvent(TraceEventType.Error,
EventLogCategory.MessageLogging,
EventLogEventId.PiiLoggingNotAllowed,
false);
}
}
this.initialized = true;
}
}
}
}
protected override string[] GetSupportedAttributes()
{
return new string[] { PiiTraceSource.LogPii };
}
internal bool ShouldLogPii
{
get
{
// ShouldLogPii is called very frequently, don't call Initialize unless we have to.
if (!this.initialized)
{
Initialize();
}
return this.shouldLogPii;
}
set
{
// If you call this, you know what you're doing
this.initialized = true;
this.shouldLogPii = value;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Brush.cs
- ScaleTransform3D.cs
- TheQuery.cs
- FormsAuthenticationUserCollection.cs
- XmlSerializationReader.cs
- BitmapMetadataEnumerator.cs
- Tile.cs
- UnsafeNativeMethods.cs
- DocumentXmlWriter.cs
- XmlReaderSettings.cs
- ConfigurationHelpers.cs
- ErrorLog.cs
- MSAAWinEventWrap.cs
- UIElement3D.cs
- ArithmeticException.cs
- RunInstallerAttribute.cs
- HttpCookieCollection.cs
- SmtpFailedRecipientException.cs
- PeerNameRecordCollection.cs
- StatusStrip.cs
- RuntimeHelpers.cs
- WebConfigurationHostFileChange.cs
- metadatamappinghashervisitor.cs
- itemelement.cs
- DateTimeValueSerializerContext.cs
- UrlMappingCollection.cs
- IndexerNameAttribute.cs
- ToolStripSeparatorRenderEventArgs.cs
- StorageEntityTypeMapping.cs
- invalidudtexception.cs
- EdmValidator.cs
- VectorAnimationBase.cs
- Rect3D.cs
- dbdatarecord.cs
- ActivityBuilderXamlWriter.cs
- SqlStream.cs
- EpmSyndicationContentSerializer.cs
- SafeCoTaskMem.cs
- SystemNetHelpers.cs
- ToolStripLabel.cs
- DocumentViewerBase.cs
- UnsafeNativeMethods.cs
- RequestQueryParser.cs
- DrawListViewItemEventArgs.cs
- ObjectStateFormatter.cs
- NumberSubstitution.cs
- ServiceThrottlingElement.cs
- ButtonFlatAdapter.cs
- UnsafeNativeMethods.cs
- DataBoundControl.cs
- Utils.cs
- ParagraphVisual.cs
- DesignerForm.cs
- TreeNodeSelectionProcessor.cs
- _ListenerRequestStream.cs
- MembershipUser.cs
- XmlSubtreeReader.cs
- Stylesheet.cs
- EntityTypeEmitter.cs
- LowerCaseStringConverter.cs
- UpdatableGenericsFeature.cs
- WpfXamlLoader.cs
- DocumentApplicationDocumentViewer.cs
- DataGridViewCellStyle.cs
- InternalPermissions.cs
- UnmanagedMemoryStream.cs
- FastEncoder.cs
- TranslateTransform.cs
- DoWorkEventArgs.cs
- ProfileGroupSettingsCollection.cs
- COM2ColorConverter.cs
- DataServiceSaveChangesEventArgs.cs
- PageRouteHandler.cs
- ReachSerializationUtils.cs
- IdnMapping.cs
- SQLStringStorage.cs
- ToolStripContentPanel.cs
- SafeCoTaskMem.cs
- EdmProviderManifest.cs
- AttributeUsageAttribute.cs
- CheckedListBox.cs
- DataGridViewColumn.cs
- DataGridViewSelectedRowCollection.cs
- ConfigurationManagerHelper.cs
- SimpleRecyclingCache.cs
- ConnectionPoint.cs
- ColorContext.cs
- FileDialog_Vista_Interop.cs
- ExtensionQuery.cs
- PackWebRequestFactory.cs
- VolatileResourceManager.cs
- ProcessModule.cs
- DiffuseMaterial.cs
- XsdDateTime.cs
- UnsafeNativeMethods.cs
- GeneralTransformGroup.cs
- SuppressMessageAttribute.cs
- SponsorHelper.cs
- WpfXamlLoader.cs
- ProtocolsSection.cs