当前位置: 首页 > 知识库问答 >
问题:

tomcat:slf4j上的spring mvc应用程序找不到logback.xml,只登录到catalina.out

孔鸿云
2023-03-14

更新:问题已解决。问题是我试图将日志文件放入一个tomcat7用户没有访问权限的目录。请参阅下面的答案和评论。

我刚刚安装了slf4j,但它只登录到catalina.out(与post中的“无法找到logback.xml”相同)

我已经将logback.xml文件放在了'project\src\main\java'和'project\src\main\webapp\resources'下,但无论哪种方法都不创建日志文件,只是将所有日志放入catalina.out中

在上面提到的另一篇文章中,它说要将文件放在类路径下,我理解它是'project\src'目录

任何关于如何解决这个问题的想法都将非常感谢

谢谢啊

logback.xml:

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

    <!-- *** CONFIGURE APPLICATION LOG DIRECTORY *** -->
    <property name="DEV_HOME" value="/var/lib/tomcat7/logs/spring4-1" />

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

    <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} - %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>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>

    </appender>

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

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

    </appender>

    <!-- Send logs to both console and file audit -->
    <logger name="com.concretepage" level="debug"
        additivity="false">
        <appender-ref ref="FILE-AUDIT" />
        <appender-ref ref="STDOUT" />
    </logger>

    <root level="error">
        <appender-ref ref="FILE-ERROR" />
    </root>

</configuration>
vagrant@precise32:/vagrant/Spring4RESTAngularJS$ tree .
.
|-- build
|   |-- classes
|   |   `-- main
|   |       `-- com
|   |           `-- concretepage
|   |               |-- config
|   |               |   |-- AppConfig.class
|   |               |   |-- DBConfig.class
|   |               |   `-- WebAppInitializer.class
|   |               |-- controller
|   |               |   `-- PersonController.class
|   |               |-- dao
|   |               |   |-- IPersonDAO.class
|   |               |   `-- PersonDAO.class
|   |               |-- entity
|   |               |   `-- Person.class
|   |               `-- service
|   |                   |-- IPersonService.class
|   |                   `-- PersonService.class
|   |-- dependency-cache
|   |-- libs
|   |   `-- spring4-1.war
|   |-- resources
|   |   `-- main
|   |       `-- logback.xml
|   `-- tmp
|       |-- compileJava
|       |   `-- emptySourcePathRef
|       `-- war
|           `-- MANIFEST.MF
|-- build.gradle
|-- deploy.sh
`-- src
    `-- main
        |-- java
        |   `-- com
        |       `-- concretepage
        |           |-- config
        |           |   |-- AppConfig.java
        |           |   |-- DBConfig.java
        |           |   `-- WebAppInitializer.java
        |           |-- controller
        |           |   `-- PersonController.java
        |           |-- dao
        |           |   |-- IPersonDAO.java
        |           |   `-- PersonDAO.java
        |           |-- entity
        |           |   `-- Person.java
        |           `-- service
        |               |-- IPersonService.java
        |               `-- PersonService.java
        |-- resources
        |   `-- logback.xml
        `-- webapp
            |-- resources
            |   |-- css
            |   |   `-- style.css
            |   |-- js
            |   |   |-- app.js
            |   |   `-- lib
            |   |       |-- angular.min.js
            |   |       `-- angular-resource.min.js
            |   `-- sql
            |       `-- db.sql
            `-- WEB-INF
                `-- view
                    `-- home.jsp

37 directories, 30 files
vagrant@precise32:/vagrant/Spring4RESTAngularJS$
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'war'
archivesBaseName = 'spring4'
version = '1' 
repositories {
    html" target="_blank">mavenCentral()
}
dependencies {
    compile 'org.springframework.boot:spring-boot-starter-web:1.3.3.RELEASE'
    compile 'org.springframework.boot:spring-boot-starter-data-jpa:1.3.3.RELEASE'
    compile 'org.hibernate:hibernate-core:4.3.6.Final'
    compile 'mysql:mysql-connector-java:5.1.31'
    compile 'commons-dbcp:commons-dbcp:1.4'
    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat:1.3.3.RELEASE'    
    compile "ch.qos.logback:logback-classic:1.1.3"
    compile "org.slf4j:log4j-over-slf4j:1.7.13"
} 
configurations.all {
    exclude group: "org.slf4j", module: "slf4j-log4j12"
    exclude group: "log4j", module: "log4j"
}
sourceSets {
    main {
        resources {
            srcDirs "src/main/resources"
        }
    }
}
vagrant@precise32:/vagrant/Spring4RESTAngularJS$ ps auxwww | grep -v grep | grep tomcat
tomcat7   2435  3.2 77.0 1238660 291328 ?      Sl   14:13   0:16 /usr/lib/jvm/java-7-oracle/bin/java -Djava.util.logging.config.file=/var/lib/tomcat7/conf/logging.properties -Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms512m -Xmx1024m -Djava.endorsed.dirs=/usr/share/tomcat7/endorsed -classpath /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar -Dcatalina.base=/var/lib/tomcat7 -Dcatalina.home=/usr/share/tomcat7 -Djava.io.tmpdir=/tmp/tomcat7-tomcat7-tmp org.apache.catalina.startup.Bootstrap start
vagrant@precise32:/vagrant/Spring4RESTAngularJS$
vagrant@precise32:/vagrant/Spring4RESTAngularJS$ ll /home/vagrant/
total 72
drwxr-xr-x 7 vagrant vagrant 4096 Sep  2 19:04 ./
drwxr-xr-x 3 root    root    4096 Sep 14  2012 ../
-rw------- 1 vagrant vagrant 8574 Sep  3 09:31 .bash_history
-rw-r--r-- 1 vagrant vagrant  220 Sep 14  2012 .bash_logout
-rw-r--r-- 1 vagrant vagrant 3486 Sep 14  2012 .bashrc
drwx------ 2 vagrant vagrant 4096 Sep 14  2012 .cache/
drwxrwxr-x 6 vagrant vagrant 4096 Aug 28 20:01 .gradle/
drwxrwxr-x 2 vagrant vagrant 4096 Sep  2 19:04 logs/
drwxrwxr-x 3 vagrant vagrant 4096 Aug 27 21:59 .m2/
-rw------- 1 vagrant vagrant 1155 Aug 30 22:28 .mysql_history
-rwxr-xr-x 1 vagrant vagrant 6487 Sep 14  2012 postinstall.sh*
-rw-r--r-- 1 vagrant vagrant  675 Sep 14  2012 .profile
drwx------ 2 vagrant vagrant 4096 Aug 27 08:37 .ssh/
-rw-r--r-- 1 vagrant vagrant    0 Sep 14  2012 .sudo_as_admin_successful
-rw------- 1 vagrant vagrant    6 Sep 14  2012 .vbox_version
-rw------- 1 vagrant vagrant   12 Sep 14  2012 .veewee_version
vagrant@precise32:/vagrant/Spring4RESTAngularJS$

共有1个答案

斜烈
2023-03-14

如何启动服务器?您确定运行服务器进程的用户具有/home/vagrant/logs目录的权限吗?

此外,在logback.xml中,尝试设置debug属性:

<configuration debug="true"> 

如果您的logback.xml被选中,那么这应该会向catalina.out输出大量附加信息。

 类似资料:
  • null 其中%classpath%是一个环境变量,它具有日志所需的.jar文件的路径,如: logback-access-1.1.2.jar logback-classic-1.1.2.jar logback-core-1.1.2.jar SLF4J-API-1.7.6.jar 这是我的logback.xml文件 \logback>java-cp.;%classpath%-dlogback.co

  • 问题内容: 对于典型的最典型的面向Internet的网站,当您通过关闭选项卡( 无需注销 )登录并离开该网站(然后 注销 ),然后再次访问时,可能不需要您重新指定凭据或登录,您可以直接登录。 这一切在后端如何发生?如何在我的JSF 2.1应用程序中启用这种机制? 在Tomcat7服务器上使用JSF 2.1 问题答案: 这基本上是通过一个长寿的cookie完成的。JSF API不提供此功能,因为它只

  • 只有测试人员可以在Google Play上查看这个列表,因为您还没有上传任何APK到生产。 当我点击Google Play上的View链接时,我会被带到一个URL not found页面,页面上的文字如下: 很抱歉,在此服务器上找不到请求的URL。

  • servlet-context.xml 应用程序上下文. xml 调用方法 堆栈跟踪

  • 我正在我的应用程序中实现谷歌登录。我知道我必须在发布应用程序时生成生产就绪SHA1密钥。我这样做是使用以下命令。首先我改变了我的目录,我的. jks存储在终端,然后我使用以下命令 我在firebase中更新了SHA1。生成已签名的apk后,我通过usb将我的apk传输到我的手机上,谷歌登录工作,但一旦我将相同的apk上传到Play Store,谷歌登录就无法工作。谁能帮帮我吗。仅供参考,我也使用A