首先:我尝试了所有存在的解决方案,但没有任何工作,所以我不希望任何人说这个问题是重复的
我无法使用 logback 登录该文件,但我可以毫无问题地登录到控制台,
我的 logback.xml 文件内容
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--See http://logback.qos.ch/manual/appenders.html#RollingFileAppender-->
<!--and http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy-->
<!--for further documentation-->
<append>true</append>
<File>/root/connector/logs/connector.log</File>
<encoder>
<!-- was: %d{yyyy-MM-dd HH:mm:ss}%5p [%t] (%F:%L) - %msg%n -->
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] \(%class{25}:%line\) - %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- By setting the name to .gz here, we get free compression. -->
<fileNamePattern>/root/connector/logs/connector.log.%d{yyyy-MM-dd}.gz</fileNamePattern>
</rollingPolicy>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
我甚至试图让所有用户都有权写入该文件夹,但这不起作用
drwxrwxrwx。 2没人没人4096年4月29日08:24日志
我再次重复,我尝试了所有存在的解决方案,但没有任何工作
答案 0 :(得分:4)
也许以下链接可以帮助您。
Troubleshooting "No such file or directory" when running `php app/console doctrine:schema:create`
编辑:此链接显示“不使用带有logback的相对路径”。但我找到了测试它的机会。我发现了一些奇怪的输出。
我的测试平台是一个Web应用程序,此应用程序在Windows上的Apache Tomcat下运行。 配置和输出:
<file>/logs/output.log</file>
--------------&gt;在C:\ logs文件夹中创建日志文件
<file>C:/logs/output.log</file>
-----------&gt;在C:\ logs文件夹中创建日志文件
<file>../logs/output.log</file>
-----------&gt;在tomcat logs文件夹中创建日志文件
<file>logs/output.log</file>
---------------&gt;在tomcat bin \ logs文件夹中创建日志文件
有时候我没有创建日志文件,其主要原因是缺少用户/应用程序的创建文件权限。
答案 1 :(得分:1)
添加此部分
<logger name="com.my.package" level="DEBUG" additivity="false">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</logger>
<!-- By default, the level of the root level is set to DEBUG -->
<root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>
而不是
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
编写项目包名称而不是com.my.package
希望它能解决您的问题。
将日志发送到文件
所有日志记录都将重定向到文件c:/logs/debug.log
。此外,此日志文件将每天存档或文件大小超过10MB。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="DEV_HOME" value="c:/logs" />
<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>
<logger name="com.mkyong.web" level="debug"
additivity="false">
<appender-ref ref="FILE-AUDIT" />
</logger>
<root level="error">
<appender-ref ref="FILE-AUDIT" />
</root>
</configuration>
答案 2 :(得分:1)
我也遇到了同样的问题。在我的情况下,我正在使用带有tomcat的eclipse。
如果(绝对路径) 那么没有问题,日志文件会在指定的路径中创建。
否则if(相对路径&amp;&amp;&amp; eclipse) 然后在相对于eclipse安装目录的路径中创建日志文件。
否则if(相对路径&amp;&amp;&amp; tomcat) 然后在相对于tomcat
的bin文件夹的路径内创建日志文件答案 3 :(得分:1)
创建一个存储库,并将其包含为源文件夹,然后将logback.xml文件放入其中。 要将存储库包含在源文件夹中,请单击存储库->构建路径->用作源文件夹
答案 4 :(得分:0)
就我而言,实际上是我在pom.xml中添加的忽略XML属性文件的东西。在我添加
之后<include>**/*.xml</include>
确实有效
<resource>
<directory>src/main/resources/</directory>
<includes>
<include>**/*.json</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
答案 5 :(得分:0)
遇到此问题时,我必须添加logback.log文件所在的文件夹作为源文件夹。 在Eclipse中,只需右键单击文件夹->构建路径->用作源文件夹。
答案 6 :(得分:0)
我错过了依赖 ch.qos.logback logback-classic