Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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
在Grails中管理日志文件_Grails - Fatal编程技术网

在Grails中管理日志文件

在Grails中管理日志文件,grails,Grails,让我重写这整条线索 我有一个使用Grails编写的web应用程序,运行在运行Linux的VM上 web应用程序需要维护一个独立的日志文件,其中包含对应用程序用户非常重要的信息。我只希望它包含我正在写信给它的信息。没有别的,所以我不能使用Tomcat日志记录,等等。我需要一个单独的日志文件,因为应用程序的用户没有足够的悟性来读取Tomcat日志 如果我在本地C:drive上使用一个日志文件,当我通过IntelliJ在调试中运行它时,它当然会工作,但是一旦我将它打乱并放入Tomcat中,它就不再工作

让我重写这整条线索

我有一个使用Grails编写的web应用程序,运行在运行Linux的VM上

web应用程序需要维护一个独立的日志文件,其中包含对应用程序用户非常重要的信息。我只希望它包含我正在写信给它的信息。没有别的,所以我不能使用Tomcat日志记录,等等。我需要一个单独的日志文件,因为应用程序的用户没有足够的悟性来读取Tomcat日志

如果我在本地C:drive上使用一个日志文件,当我通过IntelliJ在调试中运行它时,它当然会工作,但是一旦我将它打乱并放入Tomcat中,它就不再工作了,我会得到一个ClassNotFoundException

 String myCurrentDate = new Date().format( 'yyyyMMddhhmm' )
 def newFile = "C:\\Temp\\MyLogFile-Log-" + myCurrentDate + ".txt.old"
 def file = new File('C:\\Temp\\MyLogFile-Log.txt')
 file.renameTo( new File(newFile) )
 file.delete()
最好的方法是什么?是否在Linux计算机上托管日志文件?sftp似乎也不是答案。我需要能够:

在应用程序执行时,重命名旧日志文件以将其存档,然后删除旧日志文件 写入日志文件
如果我在Linux上执行此操作,如何指定文件位置?

Grails的最新版本提供了logback支持。通常您会在grails app/conf下找到logback.groovy

完整功能文件的示例:

import ch.qos.logback.classic.encoder.PatternLayoutEncoder
import ch.qos.logback.core.rolling.RollingFileAppender
import ch.qos.logback.core.rolling.TimeBasedRollingPolicy


appender( 'FILE', RollingFileAppender ){
  file = '/var/log/MyLogFile-Log.log'
  append = true
  encoder( PatternLayoutEncoder ){ pattern = '%d{HH:mm:ss.SSS} [%thread] %level %logger{36} - %msg%n' }
  rollingPolicy( TimeBasedRollingPolicy ){
    fileNamePattern = '/var/log/MyLogFile-Log-%d{yyyy-MM-dd}.log'
    maxHistory = 30
  }
}

logger 'com.your.important.package', INFO

root INFO, 'FILE'

这里使用了RollingFileAppender,每天创建备份文件。

我目前一直在使用grails 2.2.5,我想这在这个版本中不可用吧?appender无法解决,到时见。配置部分的结构看起来非常类似于logback。当然,必须更改类名