[ 
https://issues.apache.org/jira/browse/LOG4NET-136?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12599639#action_12599639
 ] 

Chris Jerdonek commented on LOG4NET-136:
----------------------------------------

> Now that generics have been around a while has anyone come up with a 
> "standard" way of parsing generic string type names?

Given that a logger name can be a potentially arbitrary string, for the 
purposes of %logger{n}, I would shy away from doing too much on the assumption 
that the name is the result of calling type.FullName.

I think it might be simplest to apply %logger{n}'s "right-most" rule only to 
the maximal initial substring that "looks like" a conventional class.  This can 
be simply the maximal initial consecutive segment of letters, numbers, 
underscores, and periods (since I believe letters, numbers, and underscores are 
the only characters that can be in a C# identifier.)

This would mean that the logger--

My.App.Package.TypeName`1[[My.App.Generic.ParameterTypeName, My.Assembly, 
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] 

would generate the following for the pattern %logger{1}:

TypeName`1[[My.App.Generic.ParameterTypeName, My.Assembly, Version=1.0.0.0, 
Culture=neutral, PublicKeyToken=null]] 


On a related note, I'd also suggest that the group consider generating the 
default logger name for a type in a way other than simply calling type.FullName 
-- perhaps so it will look like 
"My.App.Package.TypeName<My.App.Generic.ParameterTypeName>" or 
"My.App.Package.TypeName<ParameterTypeName>", along the lines Tom was 
suggesting.  I was thinking about suggesting this even before seeing this 
issue.  That would be a nice convenience since .NET doesn't seem to provide a 
method or property like that already.


> logger conversionPattern restriction doesn't work correctly for Generic 
> classes
> -------------------------------------------------------------------------------
>
>                 Key: LOG4NET-136
>                 URL: https://issues.apache.org/jira/browse/LOG4NET-136
>             Project: Log4net
>          Issue Type: Bug
>    Affects Versions: 1.2.10
>         Environment: Windows 2000 Professional, .NET Framework 2.0
>            Reporter: Tom Crossland
>            Priority: Minor
>
> <conversionPattern value="%date %-5level %logger{1} - %message%newline"/>
> Using the above conversion pattern for a logger of a Generic class (i.e. 
> My.System.MyClass<My.System.MyObject>) will result in the following log 
> output:
> 2008-01-17 21:54:48,968 INFO  0, Culture=neutral, PublicKeyToken=null]] -  My 
> error message
> Obviously, in this case it's not appropriate to just take the portion of the 
> class name after the last '.' character.
> Thanks

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to