[ 
https://issues.apache.org/jira/browse/LOG4J2-112?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13495478#comment-13495478
 ] 

Ralph Goers edited comment on LOG4J2-112 at 11/12/12 6:31 PM:
--------------------------------------------------------------

"Why?" questions are usually not much fun to answer, but in this question the 
answer is easy.  I borrowed from work others had done.  In this case I believe 
RollingFileAppender started from 
https://svn.apache.org/repos/asf/logging/log4j/companions/extras/trunk/src/main/java/org/apache/log4j/rolling/.
  You will notice that FileRenameAction is final there. We have a lot of final 
classes in Log4j 2 but I'm not sure why this one needs to be. Most of the 
others all have private constructors and so aren't designed to be extended.  

I see no reason not to change it.  Can you submit a patch?

Also, if you believe your SharedFileRolloverStrategy could be used by others 
please feel free to submit that as a patch as well.
                
      was (Author: [email protected]):
    "Why?" questions are usually not much fun to answer, but in this question 
the answer is easy.  I borrowed from work others had done.  In this case I 
believe RollingFileAppender started from 
https://svn.apache.org/repos/asf/logging/log4j/companions/extras/trunk/src/main/java/org/apache/log4j/rolling/.
  You will notice that FileRenameAction is final there. We have a lot of final 
classes in Log4j 2 but I'm not sure why this one needs to be. Most of the 
others all have private constructors and so aren't designed to be extended.  

I see no reason not to change it.  Can you submit a patch?

                  
> Why is FileRenameAction a final class?
> --------------------------------------
>
>                 Key: LOG4J2-112
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-112
>             Project: Log4j 2
>          Issue Type: Question
>          Components: Core
>    Affects Versions: 2.0-beta2
>            Reporter: David Johle
>            Priority: Minor
>              Labels: features
>   Original Estimate: 5m
>  Remaining Estimate: 5m
>
> First some backstory:
> I have a special need to allow the use of a common/shared log file within a 
> clustered environment.  I have already taken other measures necessary to 
> handle the simultaneous writing of logging events to the same file w/o 
> corruption.  I have been using log4j 1.2.x for a while for this purpose, and 
> it's been working in a production environment for quite some time actually.
> What I did there is make my own DailyRollingSharedFileAppender (based on the 
> old DailyRollingFileAppender) that contains some custom logic & locking to 
> provide a safe mechanism for handling file rollovers on the shared files.
> I am currently in the process of upgrading to log4j2 for several reasons, and 
> as such am working to re-implement this concept by making a couple of custom 
> classes to augment log4j2 accordingly.  Given the new architecture (which is 
> very nice, BTW) I think this should actually a fairly straightforward 
> process...
> 1) Create a SharedFileRenameAction that extends FileRenameAction (has my 
> custom logic & locking)
> 2) Create a SharedFileRolloverStrategy that extends DefaultRolloverStrategy 
> (no gz/zip support, uses SharedFileRenameAction)
> 3) Reference SharedFileRolloverStrategy in log4j2.xml for the appenders using 
> shared files
> So for this, I only need to override a few things in these classes, and as 
> such I'd rather extend them than completely write new ones.  For #2 this is 
> not an issue, but for #1 I have hit a snag:
> public final class FileRenameAction extends ActionBase  
> (note: using beta-2 here, in trunk ActionBase is now AbstractAction)
> I've marked this issue as "Question" for now, so here is that question:
> Why is FileRenameAction marked final?
> If there was no intentional restriction on extensibility here, then I'd like 
> to make this issue an "Improvement" instead, requesting that this class no 
> longer have the final qualifier.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to