Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何登录到特定文件?_Java_Log4j_Log4j2 - Fatal编程技术网

Java 如何登录到特定文件?

Java 如何登录到特定文件?,java,log4j,log4j2,Java,Log4j,Log4j2,我有一个log4j2logger配置,它基本上将根记录器的所有日志写入一个基本日志文件。我总是在这里使用Logger.getRootLogger 对于一些特定的事件,我想用不同的文件记录。如何在属性文件中配置这样的记录器(例如,给它一个名称,然后我可以从代码中引用它)?您可以这样做 log4j.appender.transaction=org.apache.log4j.DailyRollingFileAppender log4j.appender.transaction.Date

我有一个
log4j2
logger配置,它基本上将根记录器的所有日志写入一个基本日志文件。我总是在这里使用
Logger.getRootLogger


对于一些特定的事件,我想用不同的文件记录。如何在属性文件中配置这样的记录器(例如,给它一个名称,然后我可以从代码中引用它)?

您可以这样做

    log4j.appender.transaction=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.transaction.DatePattern='.'yyyy-MM-dd
    log4j.appender.transaction.File=logs/transaction.log
    log4j.appender.transaction.layout=org.apache.log4j.PatternLayout
    log4j.appender.transaction.layout.ConversionPattern=%d{dd MMM yyyy HH\:mm\:ss} %-5p %c{2}\:%L - %m%n
    log4j.appender.transaction.threshold=info

    log4j.logger.transaction=INFO, transaction

我终于发现,
Marker
s是传递消息的方式:


这在代码中是如何使用的?我不希望使用此记录器记录所有
INFO
事件。只有特定的信息事件。如何调用此记录器?
logger transactionLog=logger.getLogger(“事务”)我猜。实际上在log4j2中它是
LogManager.getLogger(“事务”)
。更多细节:你试过了吗?你只需要为每个文件定义rot级别O_O。请投我的反对票-在问这个问题之前,真的不清楚你研究了什么。我觉得这是手册中详细介绍的基本功能?我不想将特定级别的所有日志记录到某个文件中。请仔细阅读。我想将一些相同级别的语句记录到一个特定的文件中,而其他相同级别的语句应该使用rootlogger记录到全局文件中。