1 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
7 // http://www.apache.org/licenses/LICENSE-2.0
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace Castle
.Services
.Logging
.NLogIntegration
18 using Castle
.Core
.Logging
;
19 using Castle
.Services
.Logging
.NLogtIntegration
;
21 using ExtendedLogger
= Core
.Logging
.IExtendedLogger
;
23 public class ExtendedNLogLogger
: NLogLogger
, ExtendedLogger
25 private static readonly IContextProperties globalProperties
= new GlobalContextProperties();
26 private static readonly IContextProperties threadProperties
= new ThreadContextProperties();
27 private static readonly IContextStacks threadStacks
= new ThreadContextStacks();
29 private ExtendedNLogFactory factory
;
31 public ExtendedNLogLogger(Logger logger
, ExtendedNLogFactory factory
)
37 public override ILogger
CreateChildLogger(String name
)
39 return CreateExtendedChildLogger(name
);
42 public ExtendedLogger
CreateExtendedChildLogger(String name
)
44 return Factory
.Create(Logger
.Name
+ "." + name
);
47 protected internal new ExtendedNLogFactory Factory
49 get { return factory; }
50 set { factory = value; }
53 #region IExtendedLogger Members
56 /// Exposes the Global Context of the extended logger.
58 public IContextProperties GlobalProperties
60 get { return globalProperties; }
64 /// Exposes the Thread Context of the extended logger.
66 public IContextProperties ThreadProperties
68 get { return threadProperties; }
72 /// Exposes the Thread Stack of the extended logger.
74 public IContextStacks ThreadStacks
76 get { return threadStacks; }