java - log4j 尝试登录文件

标签 java logging log4j

我正在尝试使用 log4j 将其记录到文件中 这是代码

    protected static Logger logger = Logger.getLogger(Application.class);
    private static final String DIRECTORY = "/Users/me/Desktop";
    private static final String EXTENSION = ".log";

    protected void setupLogger(String fileName) {
        SimpleLayout layout = new SimpleLayout();
        FileAppender appender = new FileAppender(layout, DIRECTORY + "/logs/" + fileName + EXTENSION, false);
        logger.addAppender(appender);
        logger.setLevel((Level) Level.DEBUG);
    }

这是我使用的 pom http://pastebin.com/vXdFtzSU

我得到的堆栈跟踪在这里

Error:(40, 28) java: incompatible types: org.apache.log4j.FileAppender cannot be converted to org.apache.log4j.Appender

我正在尝试遵循这个答案configure log4j to log to custom file at runtime

最佳答案

您好,尝试更改您的 Maven 依赖项,添加此依赖项:

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>

并更改 Spring Boot 依赖项以排除日志记录依赖项:

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
          <exclusions>
            <exclusion>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
          </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
          <exclusions>
        <exclusion>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

然后添加try/catch语句:

    protected void setupLogger(String fileName) {

        try {
            SimpleLayout layout = new SimpleLayout();
            FileAppender appender;
            appender = new FileAppender(layout, DIRECTORY + "/logs/" +        fileName + EXTENSION, false); 
            logger.addAppender(appender);
            logger.setLevel((Level) Level.DEBUG);
        } catch (IOException e) { 
            e.printStackTrace();
        }
    }

关于java - log4j 尝试登录文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38583546/

相关文章:

javax.mail.MessagingException : Could not connect to SMTP host

git - 将最有用的提交消息提取到变更日志的策略

java - Tomcat 日志记录问题

java - 具有默认级别访问权限的类内部公共(public)方法有什么用?

java - 使用计数器将数组插入到 HashMap 中

java - 由于递归依赖关系,Java 中出现 UnsatisfiedLinkError(找不到依赖库)

log4j - log4j2 中的 PropertyConfigurator

logging - 如何在 Netty 4 中禁用日志?

java - 如何在正在运行的应用程序中更改 log4j2 模式

java - log4j tcp appender 和 logstash 源主机