Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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 XML配置中的spring log4j无法为日志信息创建文件_Java_Spring_Log4j_Spring Logback - Fatal编程技术网

Java XML配置中的spring log4j无法为日志信息创建文件

Java XML配置中的spring log4j无法为日志信息创建文件,java,spring,log4j,spring-logback,Java,Spring,Log4j,Spring Logback,log4j2.xml <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN" monitorInterval="30"> <Properties> <Property name="LOG_PATTERN">%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %p %m%n</Property>

log4j2.xml

 <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="WARN" monitorInterval="30">
        <Properties>
            <Property name="LOG_PATTERN">%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} %p %m%n</Property>
            <Property name="APP_LOG_ROOT">/home/sangamnath/Desktop</Property>
        </Properties>
        <Appenders>
            <Console name="Console" target="SYSTEM_OUT" follow="true">
                <PatternLayout pattern="${LOG_PATTERN}" />
            </Console>

            <RollingFile name="appLog"
                fileName="${APP_LOG_ROOT}/SpringBoot2App/application.log"
                filePattern="${APP_LOG_ROOT}/SpringBoot2App/application-%d{yyyy-MM-dd}-%i.log">
                <PatternLayout pattern="${LOG_PATTERN}" />
                <Policies>
                    <SizeBasedTriggeringPolicy size="19500KB" />
                </Policies>
                <DefaultRolloverStrategy max="1" />
            </RollingFile>

        </Appenders>
        <Loggers>

            <Logger name="com.howtodoinjava.app" additivity="false">
                <AppenderRef ref="appLog" />
                <AppenderRef ref="Console" />
            </Logger>

            <Root level="debug">
                <AppenderRef ref="Console" />
            </Root>
        </Loggers>
    </Configuration>




public class BatchApplication {

    public static void main(String[] args) {
            ApplicationContext ctx = SpringApplication.run(BatchApplication.class, args);
            //logger.info("Application started");


        logger.debug("This is a debug message");
        logger.info("This is an info message");
        logger.warn("This is a warn message");
        logger.error("This is an error message");
        logger.fatal("This is a fatal message");


    }

}

}


Pom.xml





<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.shi</groupId>
    <artifactId>rkjobs</artifactId>
    <version>0.0.1</version>
    <name>batch</name>
    <description>drkjobs</description>

    <properties>
        <java.version>11</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-batch</artifactId>
        </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>

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

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.batch</groupId>
            <artifactId>spring-batch-test</artifactId>
            <scope>test</scope>
        </dependency>




    </dependencies>

    <profiles>
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <build.profile.id>dev</build.profile.id>
                <profileActive>dev</profileActive>
            </properties>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <build.profile.id>test</build.profile.id>
                <profileActive>test</profileActive>
            </properties>
        </profile>
        <profile>
            <id>uat</id>
            <properties>
                <build.profile.id>uat</build.profile.id>
                <profileActive>uat</profileActive>
            </properties>
        </profile>
        <profile>
            <id>local</id>
            <properties>
                <build.profile.id>local</build.profile.id>
                <profileActive>local</profileActive>
            </properties>
        </profile>
    </profiles>

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

</project>

%d{yyyy-MM-dd'HH:MM:ss.SSSZ}%p%m%n
/主页/桑加姆纳特/桌面
公共类批处理应用程序{
公共静态void main(字符串[]args){
ApplicationContext ctx=SpringApplication.run(BatchApplication.class,args);
//logger.info(“应用程序已启动”);
debug(“这是一条调试消息”);
logger.info(“这是一条信息消息”);
logger.warn(“这是一条警告消息”);
logger.error(“这是一条错误消息”);
logger.fatal(“这是一条致命消息”);
}
}
}
Pom.xml
4.0.0
org.springframework.boot
spring启动程序父级
2.1.4.1发布
com.shi
rkjobs
0.0.1
批处理
drkjobs
11
org.springframework.boot
弹簧靴起动器批次
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
spring启动程序日志记录
org.springframework.boot
spring-boot-starter-log4j2
org.springframework.boot
春季启动邮件
org.springframework.boot
spring引导启动器数据jpa
mysql
mysql连接器java
运行时
org.springframework.kafka
春天卡夫卡
org.springframework.boot
弹簧起动试验
测试
org.springframework.batch
弹簧批量试验
测试
发展
真的
发展
发展
测试
测试
测试
uat
uat
uat
地方的
地方的
地方的
org.springframework.boot
springbootmaven插件
XML配置中的spring log4j无法为日志信息创建文件

可以在控制台中打印日志消息。但在文件中无法在所需文件夹中创建打印日志文件

Your logback.xml file should be in this format : 

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>

        <property name="DEV_HOME" value="logs/demo.log" />

        <appender name="FILE-AUDIT"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${DEV_HOME}/debug.log</file>
            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                <Pattern>
                    %d{yyyy-MM-dd HH:mm:ss}- %t - %msg%n
                </Pattern>
            </encoder>

            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- rollover daily -->
                <fileNamePattern>${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log
                </fileNamePattern>
                <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>100KB</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>

        </appender>
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} -
                    %msg%n</pattern>
            </encoder>
        </appender>

        <logger name="com.demo" level="debug" additivity="false">
            <appender-ref ref="FILE-AUDIT" />
        </logger>

        <root level="info">
            <appender-ref ref="STDOUT" />
        </root>

    </configuration>

And the properties should be mentioned in application.properties file if its an spring boot application : 


    logging.level.org.springframework.web: INFO
    logging.level.org.hibernate:TRACE
    endpoints.shutdown.enabled=true

And Logger can be defined in every class where the logs needs to be included in this way : 

    private static final Logger logger = LoggerFactory.getLogger(demo.class);
可以在控制台中打印日志消息。但在无法在所需文件夹中创建打印日志文件的文件中,您的logback.xml文件应采用以下格式:
Your logback.xml file should be in this format : 

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>

        <property name="DEV_HOME" value="logs/demo.log" />

        <appender name="FILE-AUDIT"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${DEV_HOME}/debug.log</file>
            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                <Pattern>
                    %d{yyyy-MM-dd HH:mm:ss}- %t - %msg%n
                </Pattern>
            </encoder>

            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- rollover daily -->
                <fileNamePattern>${DEV_HOME}/archived/debug.%d{yyyy-MM-dd}.%i.log
                </fileNamePattern>
                <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>100KB</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>

        </appender>
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} -
                    %msg%n</pattern>
            </encoder>
        </appender>

        <logger name="com.demo" level="debug" additivity="false">
            <appender-ref ref="FILE-AUDIT" />
        </logger>

        <root level="info">
            <appender-ref ref="STDOUT" />
        </root>

    </configuration>

And the properties should be mentioned in application.properties file if its an spring boot application : 


    logging.level.org.springframework.web: INFO
    logging.level.org.hibernate:TRACE
    endpoints.shutdown.enabled=true

And Logger can be defined in every class where the logs needs to be included in this way : 

    private static final Logger logger = LoggerFactory.getLogger(demo.class);
${DEV_HOME}/debug.log %d{yyyy-MM-dd HH:MM:ss}-%t-%msg%n ${DEV_HOME}/archive/debug.%d{yyyy-MM-dd}.%i.log 100KB %d{yyyy-MM-dd HH:MM:ss}[%thread]-5级别%logger{36}- %消息%n 如果是spring引导应用程序,则应在application.properties文件中提及属性: logging.level.org.springframework.web:INFO logging.level.org.hibernate:TRACE endpoints.shutdown.enabled=true 可以在需要以这种方式包含日志的每个类中定义日志记录器: 私有静态最终记录器Logger=LoggerFactory.getLogger(demo.class);
您似乎混淆了log4j和logback,它们是两个完全不同的系统。您能给出什么解决方案me@chrylis-罢工是一项春季批量作业。应该在application.properties中指定什么,并提供maven依赖项,请不要指定任何。SpringBoot也包含它们