Add support for type aliases in config file -------------------------------------------
Key: LOG4NET-30 URL: http://issues.apache.org/jira/browse/LOG4NET-30 Project: Log4net Type: New Feature Reporter: Ron Grabowski Priority: Trivial IBatisNet uses "type" attributes in their xml config files: type="Company.Project.Foo.Data.Entity.Product, Company.Project.Data" type="Company.Project.Foo.Data.Entity.Category, Company.Project.Data" type="Company.Project.Foo.Data.Entity.User, Company.Project.Data" to save the user from having to re-type long strings every time something references a Product, Category, etc. They define an <alias> node that contains <typeAlias> entries: <alias> <typeAlias alias="Product" type="Company.Project.Foo.Data.Entity.Product, Company.Project.Data" /> <typeAlias alias="Category" type="Company.Project.Foo.Data.Entity.Product, Company.Project.Data" /> <typeAlias alias="User" type="Company.Project.Foo.Data.Entity.Product, Company.Project.Data" /> </alias> Wherever I have to specify a type, I may use one of the aliases I defined at the top of the file. It would be nice if log4net supported a similiar concept. It would also be nice if log4net shipped with some default aliases. I think normal casing would be ok: FileAppender -> log4net.Appender.FileAppender An example incorporating the above suggestions would be (this will probably wrap when it posts to the mailing list): <alias> <typeAlias alias="SessionContextPatternConverter" type="log4netAspExtensions.SessionContextPatternConverter, log4netAspExtensions" /> <typeAlias alias="CacheContextPatternConverter" type="log4netAspExtensions.CacheContextPatternConverter, log4netAspExtensions" /> <typeAlias alias="RequestContextPatternConverter" type="log4netAspExtensions.RequestContextPatternConverter, log4netAspExtensions" /> <typeAlias alias="ApplicationContextPatternConverter" type="log4netAspExtensions.ApplicationContextPatternConverter, log4netAspExtensions" /> </alias> <appender name="LoginFileAppender" type="FileAppender"> <file value="c:/inetpub/wwwroot/Logs/Logins.txt" /> <layout type="PatternLayout"> <converter> <name value="asp-session" /> <type value="SessionContextPatternConverter" /> </converter> <conversionPattern value="%5p %d (%c:%L) - [%asp-session{UserId}] %m%n" /> </layout> </appender> I haven't fully looked into the <convertor> node to see if it can support this style of attributes but an even shorted syntax might be: <appender name="LoginFileAppender" type="FileAppender"> <file value="c:/inetpub/wwwroot/Logs/Logins.txt" /> <layout type="PatternLayout"> <converter name="asp-session" type="SessionContextPatternConverter" /> <conversionPattern value="%5p %d (%c:%L) - [%asp-session{UserId}] %m%n" /> </layout> </appender> It should be possible to overwrite the builtin aliases. Had I overridden FileAppender: <typeAlias alias="FileAppender" type="log4netAspExtensions.AspNetFileAppender, log4netAspExtensions" /> I would be able to declare my appender with support for the ~ character: <appender name="LoginFileAppender" type="FileAppender"> <file value="~/Logs/Login.txt" /> <layout type="PatternLayout"> <converter name="asp-session" type="SessionContextPatternConverter" /> <conversionPattern value="%5p %d (%c:%L) - [%asp-session{UserId}] %m%n" /> </layout> </appender> I think that the above changes would descrease the size of the config file and increase the files readability. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira