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
- FontSource.cs
- NodeLabelEditEvent.cs
- OutputCacheProfile.cs
- RectAnimationBase.cs
- DataControlPagerLinkButton.cs
- HttpHeaderCollection.cs
- X509ChainElement.cs
- SiteMapNodeItemEventArgs.cs
- SqlCrossApplyToCrossJoin.cs
- DirectionalLight.cs
- Accessible.cs
- ConfigurationElement.cs
- IRCollection.cs
- IdleTimeoutMonitor.cs
- DynamicDataRoute.cs
- StringBlob.cs
- GPRECT.cs
- hresults.cs
- AutomationElementIdentifiers.cs
- NativeMethods.cs
- InputProviderSite.cs
- Encoder.cs
- CrossSiteScriptingValidation.cs
- DesignTimeTemplateParser.cs
- FileFormatException.cs
- ClientCultureInfo.cs
- WindowsPen.cs
- OpenFileDialog.cs
- RequestStatusBarUpdateEventArgs.cs
- DbConnectionHelper.cs
- CalendarDay.cs
- ProfileSection.cs
- Types.cs
- NGCPageContentCollectionSerializerAsync.cs
- ObservableDictionary.cs
- ClientRequest.cs
- DbCommandTree.cs
- SamlConditions.cs
- DataGridBoolColumn.cs
- UIElementIsland.cs
- Int32Rect.cs
- QilBinary.cs
- CodeParameterDeclarationExpression.cs
- TimeSpanValidatorAttribute.cs
- WebPartsPersonalizationAuthorization.cs
- ClientFormsIdentity.cs
- XPathQueryGenerator.cs
- TextBoxRenderer.cs
- Win32PrintDialog.cs
- Registry.cs
- ObjectQueryExecutionPlan.cs
- StringBlob.cs
- MaskInputRejectedEventArgs.cs
- NullableFloatSumAggregationOperator.cs
- Mapping.cs
- ErrorsHelper.cs
- RestHandlerFactory.cs
- LayoutExceptionEventArgs.cs
- XmlSerializableServices.cs
- Variant.cs
- HMACRIPEMD160.cs
- CodeDOMProvider.cs
- BCryptHashAlgorithm.cs
- TcpClientChannel.cs
- VisualStyleRenderer.cs
- BmpBitmapDecoder.cs
- BodyGlyph.cs
- MachineKeySection.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- XmlCustomFormatter.cs
- InheritedPropertyChangedEventArgs.cs
- RectKeyFrameCollection.cs
- Single.cs
- BaseInfoTable.cs
- CodeVariableReferenceExpression.cs
- MenuBase.cs
- PolyLineSegment.cs
- CodeEventReferenceExpression.cs
- Expression.cs
- ScriptServiceAttribute.cs
- KnownBoxes.cs
- EventManager.cs
- WebPartCollection.cs
- DragEventArgs.cs
- NumericPagerField.cs
- ImageAttributes.cs
- _RequestCacheProtocol.cs
- VisualBasicValue.cs
- PassportAuthenticationModule.cs
- DbgUtil.cs
- Matrix3DStack.cs
- DbProviderFactories.cs
- EventLogger.cs
- AssociatedControlConverter.cs
- CallId.cs
- IPEndPointCollection.cs
- AutomationProperties.cs
- RightNameExpirationInfoPair.cs
- CharAnimationBase.cs
- FilteredDataSetHelper.cs