log4j不要写入文件

时间:2017-02-04 06:32:08

标签: java cassandra log4j

我使用ubuntu 16.04。我想在具有cassandra java api的程序中编写登录文件。日志写在java控制台中,但不能写入文件。

我的节目:

import com.datastax.driver.core.querybuilder.*;
import com.datastax.driver.core.*;
import com.datastax.driver.core.ResultSet;
import java.io.IOException;
import java.util.ArrayList;
import org.apache.log4j.Logger;


public class DbAdmin {

    private Cluster cluster;
    private Session session;
    private ResultSet R;
    private int Count = 1;
    static Logger logger = Logger.getLogger(DbAdmin.class.getName());

    public DbAdmin() throws IOException {
        try {
            this.cluster = Cluster.builder().addContactPoint(address).withCredentials(authecation).build();
            this.session = cluster.connectkeyspace);
            logger.debug("Connect to database");
        } catch(Exception e){

        }
    }

和我的log4j.properties:

    # Define the root logger with appender file
log = /home/sah/log4j
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/g.log

# Define the layout for file appender
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

2 个答案:

答案 0 :(得分:0)

将slf4j.properties重命名为log4j.properties,因为Log4j默认在类路径中搜索名为 log4j.properties 的文件。如果要使用其他名称,则需要使用org.apache.log4j.PropertyConfigurator显式配置属性文件。

答案 1 :(得分:0)

如果log4j找不到log4j.properties,它将使用默认的log4j.properties,它只有控制台appender。所以控制台输出并不意味着你正确log4j.properties。

您提供的log4j.properties的内容是正确的。 因此,您需要检查log4j.properties是否在类路径中,并且有权将日志写入文件。

您还可以通过代码显式配置log4j.properties。 PropertyConfigurator.configure(....)