1 // Copyright 2004-2007 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
.Core
.Logging
21 public abstract class AbstractLoggerFactory
: MarshalByRefObject
, ILoggerFactory
23 public virtual ILogger
Create(Type type
)
25 if (type
== null) throw new ArgumentNullException("type");
27 return Create(type
.FullName
);
30 public virtual ILogger
Create(Type type
, LoggerLevel level
)
32 if (type
== null) throw new ArgumentNullException("type");
34 return Create(type
.FullName
, level
);
37 public abstract ILogger
Create(String name
);
39 public abstract ILogger
Create(String name
, LoggerLevel level
);
42 /// Gets the configuration file.
44 /// <param name="filename">i.e. log4net.config</param>
45 /// <returns></returns>
46 protected FileInfo
GetConfigFile(string filename
)
50 if (Path
.IsPathRooted(filename
))
52 result
= new FileInfo(filename
);
56 result
= new FileInfo(Path
.Combine(AppDomain
.CurrentDomain
.BaseDirectory
, filename
));