小编lil*_*nux的帖子

每次使用log4j运行一个日志文件

如何将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)

java logging log4j slf4j appender

10
推荐指数
2
解决办法
2万
查看次数

Eclipse插件显示Java项目之间的彻底调用层次结构

我正在使用eclipse开普勒,我需要一个插件来确定项目正在使用工作空间/工作集的其他项目的哪些方法.很像"调用层次结构",但自动适用于所有类和方法.

是否有现成的插件可以做到这一点?不一定需要可视化,结果表就足够了.

java eclipse plugins code-analysis

7
推荐指数
1
解决办法
2608
查看次数

多个项目使用的例外情况应该放在哪里?

我需要将一个带有两个数据模型的项目重构为两个独立的项目.两个项目都使用相同的例外.我应该仅为这些例外创建第三个项目吗?克隆听起来像是不行.

java exception

6
推荐指数
1
解决办法
128
查看次数

整个工作集/工作区中的Eclipse"Open Call Hierarchy"

有没有办法将"Open Call Hierarchy"功能扩展到整个工作集或工作区?(即跨多个项目)在搜索已弃用的方法和依赖项时,这将非常方便.

java eclipse call-hierarchy

6
推荐指数
1
解决办法
5057
查看次数

Java 8 Streams:使用映射值列出要映射的列表

我试图创建一个MapList使用Stream秒.

key应是原来的项目名称,

value应该是一些派生的数据.

.map()流由Integers 组成之后,当.collect()我无法从前一个访问"foo"时lambda.如何获取原始项目.toMap()

这可以用Streams 来完成还是我需要.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)

java-stream

3
推荐指数
1
解决办法
6983
查看次数

组成 UUID,例如 00000000-0000-0000-0000-000000000000

我正在编写一个使用 UUID 来识别数据集的应用程序。不导入国外UUID,所有UUID均由应用生成。有一个默认数据集,我喜欢作为人类轻松识别它。

由于 00000000-0000-0000-0000-000000000000 与任何其他生成的 UUID 的可能性相同,您认为可以手动选择它作为我的默认数据集的 UUID 吗?

或者甚至是某些选定数据集的连续 UUID 范围?

uuid

0
推荐指数
1
解决办法
6806
查看次数