如何将log4j.properties配置为每次运行应用程序时只有一个日志文件.我已经读过你应该在文件名中使用时间戳,但随着时间的推移,每次运行会创建许多文件.
我尝试过DailyRollingFileAppender和RollingFileAppender但是找不到一种方法来为每次运行配置一个日志.不应将日志分成多个日志,也不应截断日志,应保留旧运行的文件.
每个类都有一个静态的org.slf4j.Logger,它有自己的类名:
private static final Logger log = LoggerFactory.getLogger(Foo.class);
Run Code Online (Sandbox Code Playgroud)
这是我当前的log4j.properties
log4j.rootLogger=error, RootAppender, RootErrorAppender
#log4j.logger.com.example=info, qspaBackendAppender, stderr
log4j.logger.com.example=info, qspaBackendAppender
log4j.additivity.com.example=true
#log4j.logger.com.example.util=trace, qspaBackendAppender, stderr
#log4j.additivity.com.example.util=true
log4j.appender.qspaBackendAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.qspaBackendAppender.file=logs/qspaBackend.log
log4j.appender.qspaBackendAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.qspaBackendAppender.layout.ConversionPattern=<%d{yyyy-MM-dd HH:mm:ss}> %-5p : %C{1} %c{2} : %m%n
log4j.appender.stderr=org.apache.log4j.ConsoleAppender
log4j.appender.stderr.Target=System.err
log4j.appender.stderr.layout=org.apache.log4j.PatternLayout
log4j.appender.stderr.layout.ConversionPattern=%-5p %c{1}:%L - %m%n
log4j.appender.RootAppender=org.apache.log4j.RollingFileAppender
log4j.appender.RootAppender.file=logs/root.log
log4j.appender.RootAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.RootAppender.layout.ConversionPattern=<%d{yyyy-MM-dd HH:mm:ss}> %-5p : %C{1} %c{2} : %m%n
log4j.appender.RootErrorAppender=org.apache.log4j.RollingFileAppender
log4j.appender.RootErrorAppender.file=logs/rootError.log
log4j.appender.RootErrorAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.RootErrorAppender.layout.ConversionPattern=<%d{yyyy-MM-dd HH:mm:ss}> %-5p : %C{1} %c{2} : %m%n
log4j.appender.RootErrorAppender.threshold=error
Run Code Online (Sandbox Code Playgroud) 我正在使用eclipse开普勒,我需要一个插件来确定项目正在使用工作空间/工作集的其他项目的哪些方法.很像"调用层次结构",但自动适用于所有类和方法.
是否有现成的插件可以做到这一点?不一定需要可视化,结果表就足够了.
我需要将一个带有两个数据模型的项目重构为两个独立的项目.两个项目都使用相同的例外.我应该仅为这些例外创建第三个项目吗?克隆听起来像是不行.
有没有办法将"Open Call Hierarchy"功能扩展到整个工作集或工作区?(即跨多个项目)在搜索已弃用的方法和依赖项时,这将非常方便.
我试图创建一个Map
从List
使用Stream
秒.
本key
应是原来的项目名称,
本value
应该是一些派生的数据.
在.map()
流由Integer
s 组成之后,当.collect()
我无法从前一个访问"foo"时lambda
.如何获取原始项目.toMap()
?
这可以用Stream
s 来完成还是我需要.forEach()
?
(下面的代码仅用于演示,实际代码当然要复杂得多,我无法制作doSomething()
方法Foo
).
import java.util.ArrayList;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
public class StreamTest {
public class Foo {
public String getName() {
return "FOO";
}
public Integer getValue() {
return 42;
}
}
public Integer doSomething(Foo foo) {
return foo.getValue() + 23;
}
public Map<String, Integer> …
Run Code Online (Sandbox Code Playgroud) 我正在编写一个使用 UUID 来识别数据集的应用程序。不导入国外UUID,所有UUID均由应用生成。有一个默认数据集,我喜欢作为人类轻松识别它。
由于 00000000-0000-0000-0000-000000000000 与任何其他生成的 UUID 的可能性相同,您认为可以手动选择它作为我的默认数据集的 UUID 吗?
或者甚至是某些选定数据集的连续 UUID 范围?