Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.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 将c3po日志转发到Logback的文件中_Java_Spring_Logback - Fatal编程技术网

Java 将c3po日志转发到Logback的文件中

Java 将c3po日志转发到Logback的文件中,java,spring,logback,Java,Spring,Logback,c3po日志通常由控制台打印。我试图将C3PO日志转发到一个文件中,但没有成功 这是我的logback.xml和pom.xml LOGBACK <?xml version="1.0" encoding="UTF-8" ?> <configuration scanPeriod="10 seconds" debug="false" scan="true"> <property name="LOG_DIR" value="logs" /> <a

c3po日志通常由控制台打印。我试图将C3PO日志转发到一个文件中,但没有成功

这是我的logback.xml和pom.xml

LOGBACK

<?xml version="1.0" encoding="UTF-8" ?>
<configuration scanPeriod="10 seconds" debug="false" scan="true">
    <property name="LOG_DIR" value="logs" />
    <appender name="STDOUTAppender" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%date %level [%X{traceid}] - %C{1}:%L %msg%n</pattern>
        </encoder>
    </appender>


    <appender name="SPRING"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_DIR}/spring.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_DIR}/spring.log.%d{yyyy-MM-dd-HH}
            </FileNamePattern>

            <MaxHistory>30</MaxHistory>
        </rollingPolicy>

        <encoder>
            <pattern>%date %level [%X{traceid}] - %C{1}:%L %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="errorAppender"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_DIR}/error/ERROR.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_DIR}/error/ERROR.log.%d{yyyy-MM-dd-HH}
            </FileNamePattern>

            <MaxHistory>72</MaxHistory>
        </rollingPolicy>

        <encoder>
            <pattern>%date %level [%thread] %msg%n</pattern>
        </encoder>

        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <appender name="AppAppender"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_DIR}/application/APPLICATION.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_DIR}/application/APPLICATION.log.%d{yyyy-MM-dd-HH}
            </FileNamePattern>
        </rollingPolicy>

        <encoder>
            <pattern>%date %level [%X{traceid}] - %C{1}:%L %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="TxnAppender"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_DIR}/txn/TXN.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_DIR}/txn/TXN.log.%d{yyyy-MM-dd-HH}
            </FileNamePattern>
        </rollingPolicy>

        <encoder>
            <pattern>%msg%n</pattern>
        </encoder>
    </appender>

    <appender name="AlarmAppender"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_DIR}/alarm/ALARM.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_DIR}/alarm/ALARM.log.%d{yyyy-MM-dd}
            </FileNamePattern>
        </rollingPolicy>

        <encoder>
            <pattern>%msg%n</pattern>
        </encoder>
    </appender>

    <appender name="C3POAppender"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_DIR}/c3po/c3po.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_DIR}/c3po/c3po.log.%d{yyyy-MM-dd}
            </FileNamePattern>

            <MaxHistory>30</MaxHistory>
        </rollingPolicy>

        <encoder>
            <pattern>%msg%n</pattern>
        </encoder>
    </appender>

    <logger name="org.springframework">
        <level value="INFO" />
        <appender-ref ref="SPRING" />
    </logger>

    <logger name="TxnLogger">
        <level value="INFO" />
        <appender-ref ref="TxnAppender" />
    </logger>

    <logger name="AlarmLogger">
        <level value="INFO" />
        <appender-ref ref="AlarmAppender" />
    </logger>

    <logger name="com.mchange.v2.c3p0">
        <appender-ref ref="C3POAppender" />
    </logger>

    <logger name="com.ttech.pnsender" additivity="true" level="DEBUG">
        <appender-ref ref="AppAppender" />
        <appender-ref ref="errorAppender" />
    </logger>

    <root level="ERROR">
        <appender-ref ref="STDOUTAppender" />
    </root>
</configuration>

%日期%1级别[%X{traceid}]-%C{1}:%L%msg%n
${LOG\u DIR}/spring.LOG
${LOG\u DIR}/spring.LOG.%d{yyyy-MM-dd-HH}
30
%日期%1级别[%X{traceid}]-%C{1}:%L%msg%n
${LOG\u DIR}/error/error.LOG
${LOG\u DIR}/error/error.LOG.%d{yyyy-MM-dd-HH}
72
%日期%级别[%thread]%msg%n
错误
接受
否认
${LOG\u DIR}/application/application.LOG
${LOG\u DIR}/application/application.LOG.%d{yyyy-MM-dd-HH}
%日期%1级别[%X{traceid}]-%C{1}:%L%msg%n
${LOG_DIR}/txn/txn.LOG
${LOG_DIR}/txn/txn.LOG.%d{yyyy-MM-dd-HH}
%消息%n
${LOG_DIR}/alarm/alarm.LOG
${LOG\u DIR}/alarm/alarm.LOG.%d{yyyy-MM-dd}
%消息%n
${LOG_DIR}/c3po/c3po.LOG
${LOG\u DIR}/c3po/c3po.LOG.%d{yyyy-MM-dd}
30
%消息%n
POM.XML

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.ahmetk</groupId>
<artifactId>pnsender</artifactId>


<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <docker.image.prefix>springio</docker.image.prefix>
</properties>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.2.RELEASE</version>
</parent>

<build>

    <plugins>

        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>




    </plugins>



</build>

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-autoconfigure</artifactId>
    </dependency>

    <!-- weblogic üzerine deploy etmek için websocket collision olmasin. -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.apache.tomcat.embed</groupId>
                <artifactId>tomcat-embed-websocket</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

4.0.0
com.ahmetk
pnsender
UTF-8
1.8
斯普林尼奥
org.springframework.boot
spring启动程序父级
1.4.2.1发布
org.springframework.boot
springbootmaven插件
朱尼特
朱尼特
测试
redis.clients
绝地武士
org.springframework.boot
弹簧靴
org.springframework.boot
弹簧启动安全
org.springframework.boot
弹簧靴自动配置
org.springframework.boot
SpringBootStarterWeb
org.apache.tomcat.embed
tomcat嵌入websocket
org.apache.tomcat.embed tomcat嵌入websocket 假如 -->

org.springframework.boot
弹簧启动机tomcat
假如
org.springframework.boot
弹簧靴启动器jdbc
org.springframework.boot
spring引导启动器数据jpa
javax.ws.rs
javax.ws.rs-api
2.0.1
org.springframework
弹簧试验
测试
org.mockito
莫基托所有
1.9.5
测试
com.oracle
ojdbc6
11.2.0.4
com.mchange
c3p0
0.9.2.1
com.googlecode.libphonenumber
libphonenumber
7.2.6
com.google.code.gson
格森
2.4
番石榴
番石榴
19
com.datasax.cassandra
卡桑德拉驱动核心
3.1.0
com.datasax.cassandra
卡桑德拉驱动映射
3.1.0
com.googlecode.json-simple
简单json
1.1.1
com.notnoop.apns
apns
1.0.0.Beta7_2-SNAPSHOT
com.fasterxml.jackson.core
杰克逊数据绑定
com.relayrides
咄咄逼人
0.5-1快照
org.apache.kafka
卡夫卡2.10
0.8.2.1
org.slf4j
slf4j-log4j12
org.apache.kafka
卡夫卡客户
0.8.2.1
org.apache.avro
阿夫罗
1.7.7
org.springframework.boot
弹簧靴起动器执行器
org.jboss.logging
jboss日志
3.3.0.1最终版本
hsqldb
hsqldb
1.8.0.10
测试

我在使用slf4j+logback+c3p0组合时遇到了类似的问题

按照以下步骤找到解决方案:

  • 让c3p0(MLog)选择
    Java1.4+标准日志记录
    ,无需执行任何操作。如果不配置FallbackMLog,则自动选择'
  • 将依赖项
    org.slf4j/jul-to-slf4j
    添加到pom.xml(将java util日志连接到slf4j)
  • 在您的主机上,在c3p0初始化之前添加以下代码片段:

    // Getting JUL root logger
    Logger logger = java.util.logging.LogManager.getLogManager().getLogger("");
    
    // Remove already attached Console handler which is responsible for above trouble
    for (Handler handler : logger.getHandlers()) {
        handler.close();
        logger.removeHandler(handler);
    }
    
    // Let SLF4J bridge configure its own handler(s)
    SLF4JBridgeHandler.install();
    

  • ${LOG\u DIR}/c3po文件夹有权限限制吗?没有,其他appender工作正常,即使创建了c3po/c3po.LOG文件,也无法将日志转发到该文件中,因为现在我只是暂时禁用了c3p0日志记录com.mchange.v2.LOG.FallbackMLog.DEFAULT\u
    // Getting JUL root logger
    Logger logger = java.util.logging.LogManager.getLogManager().getLogger("");
    
    // Remove already attached Console handler which is responsible for above trouble
    for (Handler handler : logger.getHandlers()) {
        handler.close();
        logger.removeHandler(handler);
    }
    
    // Let SLF4J bridge configure its own handler(s)
    SLF4JBridgeHandler.install();