Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / Tools / xws_reg / System / ServiceModel / Install / MsiStyleLogWriter.cs / 1 / MsiStyleLogWriter.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Install { using System.Diagnostics; using System.Globalization; using System.IO; class MsiStyleLogWriter { string logEntryPrefix; bool logFailureReported; StreamWriter logWriter; MsiStyleLogWriter(string logEntryPrefix) { this.logEntryPrefix = logEntryPrefix; string tempPath = Path.GetTempPath(); Random random = new Random(); int attempts = 0; const int maxAttempts = 20; Exception lastException = null; do { string logFileName = string.Format(CultureInfo.InvariantCulture, "dd_wcf_retCA{0:X}.txt", random.Next(short.MaxValue)); string logFilePath = Path.Combine(tempPath, logFileName); try { Stream logFileStream = new FileStream(logFilePath, FileMode.CreateNew, FileAccess.Write, FileShare.Read); this.logWriter = new StreamWriter(logFileStream); } catch (DirectoryNotFoundException exception) { EventLogger.LogWarning(SR.GetString(SR.ErrorCreatingMsiStyleLogFile, logFilePath, exception), false); return; } catch (PathTooLongException exception) { EventLogger.LogWarning(SR.GetString(SR.ErrorCreatingMsiStyleLogFile, logFilePath, exception), false); return; } catch (IOException exception) { // The current logFilePath may already exists; try again. lastException = exception; } } while ((this.logWriter == null) && (++attempts < maxAttempts)); if (this.logWriter == null) { EventLogger.LogWarning(SR.GetString(SR.ErrorCreatingMsiStyleLogFile, tempPath, lastException), false); this.logWriter = StreamWriter.Null; } } public static MsiStyleLogWriter CreateWriter() { string mainModuleFilePath = Process.GetCurrentProcess().MainModule.FileName; string logEntryPrefix = Path.GetFileNameWithoutExtension(mainModuleFilePath); MsiStyleLogWriter writer = new MsiStyleLogWriter(logEntryPrefix); DateTime now = DateTime.Now; writer.WriteRaw(SR.GetString(SR.MsiStyleLogBanner, now.ToShortDateString(), now.ToString("HH:mm:ss", CultureInfo.CurrentCulture), mainModuleFilePath)); return writer; } public void WriteEntry(string message) { this.WriteRaw(string.Format(CultureInfo.InvariantCulture, "{0} [{1}]: {2}", this.logEntryPrefix, DateTime.Now.ToString("HH:mm:ss:fff", CultureInfo.CurrentCulture), message)); } public void WriteRaw(string message) { try { this.logWriter.WriteLine(message); this.logWriter.Flush(); } catch (IOException exception) { if (!this.logFailureReported) { EventLogger.WriteLogEntry(SR.GetString(SR.ErrorWritingMsiStyleLogEntry, exception), EventLogEntryType.Warning); this.logFailureReported = true; } } } } } // 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
- ZipIOCentralDirectoryBlock.cs
- DataErrorValidationRule.cs
- itemelement.cs
- DBConnection.cs
- counter.cs
- MonitoringDescriptionAttribute.cs
- TabletDevice.cs
- OracleParameterBinding.cs
- Expr.cs
- DBAsyncResult.cs
- InvalidContentTypeException.cs
- ListViewTableCell.cs
- HttpResponse.cs
- ClientConfigPaths.cs
- HwndSource.cs
- SvcMapFile.cs
- HttpStreamFormatter.cs
- DataGridTableCollection.cs
- IndexerNameAttribute.cs
- AssemblyHash.cs
- FixedSOMTextRun.cs
- DelegateHelpers.Generated.cs
- CodeTypeDelegate.cs
- DecimalKeyFrameCollection.cs
- TypeInformation.cs
- DynamicPropertyHolder.cs
- PlatformCulture.cs
- XdrBuilder.cs
- XmlBinaryReader.cs
- PixelFormats.cs
- ProtocolElementCollection.cs
- QuadraticBezierSegment.cs
- KerberosSecurityTokenAuthenticator.cs
- TypeConverterAttribute.cs
- ExtensionQuery.cs
- FixedSOMTableRow.cs
- ObjectAssociationEndMapping.cs
- GridViewColumnHeader.cs
- AmbientLight.cs
- SqlPersonalizationProvider.cs
- EmbeddedObject.cs
- MasterPageBuildProvider.cs
- TextWriter.cs
- MediaElement.cs
- RPIdentityRequirement.cs
- _SSPIWrapper.cs
- RemoteCryptoSignHashRequest.cs
- ConfigurationManagerHelper.cs
- DataControlImageButton.cs
- ObjectQueryState.cs
- TextOnlyOutput.cs
- WebPageTraceListener.cs
- SqlProvider.cs
- DataGridViewRowCancelEventArgs.cs
- WebPartConnection.cs
- WindowsProgressbar.cs
- JournalNavigationScope.cs
- CmsUtils.cs
- GeometryDrawing.cs
- ControlBuilderAttribute.cs
- TypeDescriptionProvider.cs
- LocatorPartList.cs
- DispatcherEventArgs.cs
- LocalFileSettingsProvider.cs
- ResourcesGenerator.cs
- Label.cs
- WinFormsSpinner.cs
- PriorityBinding.cs
- XPathScanner.cs
- InputMethodStateChangeEventArgs.cs
- TaskDesigner.cs
- CompilerCollection.cs
- AttributedMetaModel.cs
- SerTrace.cs
- HtmlInputHidden.cs
- XmlDataSource.cs
- EFColumnProvider.cs
- HtmlGenericControl.cs
- DispatcherHookEventArgs.cs
- AutomationPatternInfo.cs
- SrgsElement.cs
- PerformanceCounterManager.cs
- ToggleButtonAutomationPeer.cs
- ListViewHitTestInfo.cs
- DispatcherOperation.cs
- List.cs
- DefaultPropertyAttribute.cs
- CellRelation.cs
- CodeTypeReferenceExpression.cs
- Pointer.cs
- DataTableMappingCollection.cs
- formatter.cs
- BaseTemplateParser.cs
- PasswordTextContainer.cs
- FocusWithinProperty.cs
- RuntimeHandles.cs
- GroupBox.cs
- FtpWebRequest.cs
- xml.cs
- EncryptedReference.cs