我有一个log4j配置XML,它有多个lple文件追加器。当我为我的应用程序构建一个新模块时,我希望再包含一个文件附加器,并仅使用该文件。有什么办法吗?
我尝试使用Logger.getLogger(MyAppender);但是在日志文件中,我应该得到类名...有了这个,我只得到日志文件中的appender名称。
我的appender配置是这样的。
" "
日志如下所示。。2013年10月31日10:58:46032信息MyAppender Hello World
但我需要
2013年10月31日10:58:46032信息MyClass Hello World
我想说,您的需求是为新的包结构(新模块中的那个)使用不同的记录器。
例如:-如果新模块中使用的包结构是a.b.*,则以下属性文件将适合您的用途。
# Root logger option
log4j.rootLogger=INFO,stdout
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
# Direct log messages to your file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\loging.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
#Package logger option
log4j.logger.a.b=INFO,file (see note 1)
log4j.additivity.a.b=false (see note 2)
注意1:-为新包定义一个新的记录器。在此包或子包下定义的任何类都将使用此记录器。阅读此处了解更多关于命名层次结构的信息。在你的java中,你可以使用
Logger logger = Logger.getLogger(yourClass)
注2:-关闭可加性,以便日志仅在添加到记录器a.b的附录中打印。阅读此处了解有关可加性的更多信息。
由来 顾名思义,FileAppender类表示文件追加器。此对象持有一个一个文件,在内存中积累一定量的数据后统一追加到文件,此类只有在写入文件时打开文件,并在写入结束后关闭之。因此此类不需要关闭。 在调用append方法后会缓存于内存,只有超过容量后才会一次性写入文件,因此内存中随时有剩余未写入文件的内容,在最后必须调用flush方法将剩余内容刷入文件。 也就是说,这是一个支持缓存的文件内容追加器
问题内容: 嘿,我需要附加到我的文件中,但是它不起作用,它会不断覆盖文件,任何人都可以告诉我出什么问题了: 提前致谢。 问题答案: 您可以通过更改分配以下内容的行来解决此问题: 使用仅包含的构造函数打开文件时,它将覆盖文件中先前的内容。如果提供第二个参数,则表示您要附加到第二个参数的末尾。
问题内容: 我用谷歌搜索了一段时间,但似乎找不到它,这应该很容易。我想将CR添加到使用Transformer创建的XML文件的末尾。有没有办法做到这一点> 我尝试了以下操作,但这导致空白文件? 问题答案: 简单…只需添加append选项:
在log4j.xml中追加内容: 如何在java中获取这些参数,并像在log4j2中的上述配置一样创建多文件追加器?请帮帮忙。多谢了。
问题内容: 我正在编写一个将多个线程的行附加到同一文件的应用程序。 我有一个问题,其中某些行被追加而没有新行。 有什么解决办法吗? 问题答案: 解决方案是仅在一个线程中写入文件。
但是我有一个新的需求,我想把一些日志发送到“local5”工具,而不是local6。我已经阅读了登录配置文档http://logback.qos.ch/manual/configuration.html,但我仍然不知道如何做到这一点。