1
#region Copyright & License
3
// Copyright 2001-2005 The Apache Software Foundation
5
// Licensed under the Apache License, Version 2.0 (the "License");
6
// you may not use this file except in compliance with the License.
7
// You may obtain a copy of the License at
9
// http://www.apache.org/licenses/LICENSE-2.0
11
// Unless required by applicable law or agreed to in writing, software
12
// distributed under the License is distributed on an "AS IS" BASIS,
13
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
// See the License for the specific language governing permissions and
15
// limitations under the License.
25
namespace log4net.Util.PatternStringConverters
28
/// Write the current threads username to the output
32
/// Write the current threads username to the output writer
35
/// <author>Nicko Cadell</author>
36
internal sealed class UserNamePatternConverter : PatternConverter
39
/// Write the current threads username to the output
41
/// <param name="writer">the writer to write to</param>
42
/// <param name="state">null, state is not set</param>
45
/// Write the current threads username to the output <paramref name="writer"/>.
48
override protected void Convert(TextWriter writer, object state)
51
// On compact framework there's no notion of current Windows user
52
writer.Write( SystemInfo.NotAvailableText );
56
System.Security.Principal.WindowsIdentity windowsIdentity = null;
57
windowsIdentity = System.Security.Principal.WindowsIdentity.GetCurrent();
58
if (windowsIdentity != null && windowsIdentity.Name != null)
60
writer.Write( windowsIdentity.Name );
63
catch(System.Security.SecurityException)
65
// This security exception will occur if the caller does not have
66
// some undefined set of SecurityPermission flags.
67
LogLog.Debug("UserNamePatternConverter: Security exception while trying to get current windows identity. Error Ignored.");
69
writer.Write( SystemInfo.NotAvailableText );