首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FileAppender重新创建文件

FileAppender重新创建文件
EN

Stack Overflow用户
提问于 2014-02-18 09:36:42
回答 1查看 517关注 0票数 0

我已经完成了扩展FileRollerAppender的类FileAppender。在我的新类中,我需要重命名当前文件,并从开始开始启动新的文件。重命名文件的过程。

代码语言:javascript
复制
public void rollOver() 
        {   
...        
        closeFile();
...
        File file = new File(fileName);
        file.renameTo(target);
    }    

现在,当记录器tryes日志"hello“时,我有异常:

代码语言:javascript
复制
log4j:ERROR Failed to write [2014-02-18 09:21:42,941 26   [main] DEBUG sys.SuperBase  - hello
].
java.io.IOException: Stream closed
    at sun.nio.cs.StreamEncoder.ensureOpen(StreamEncoder.java:38)
    at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:129)
    at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:146)
    at java.io.OutputStreamWriter.write(OutputStreamWriter.java:204)
    at java.io.Writer.write(Writer.java:126)
    at org.apache.log4j.helpers.QuietWriter.write(QuietWriter.java:39)
    at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:292)
    at org.apache.log4j.WriterAppender.append(WriterAppender.java:150)
    at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:221)
    at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:57)
    at org.apache.log4j.Category.callAppenders(Category.java:187)
    at org.apache.log4j.Category.forcedLog(Category.java:372)
    at org.apache.log4j.Category.debug(Category.java:241)
    at sys.SuperBase.debug(SuperBase.java:93)
    at log.FileRollerAppender.main(FileRollerAppender.java:157)

如何告诉记录器重新创建文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-18 09:53:36

你有理由自己创造这一切吗?Log4j已经有了几种滚动策略--达到最大尺寸、数据/小时变化和启动。请参阅更多这里

如果您确实想实现自己的代码,可以查看log4j的代码,看看它是如何实现的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21849517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档