让我改写整个帖子。
我有一个使用Grails编写的Web应用程序,并在运行Linux的VM上运行。
Web应用程序需要维护一个单独且不同的日志文件,其中包含应用程序用户非常重要的信息。我只希望它包含我写给它的信息。没有其他所以我不能使用Tomcat日志记录等。我需要一个单独的日志文件,因为应用程序的用户不够精明,无法读取Tomcat日志。
如果我在本地C:驱动器上使用日志文件,它当然可以通过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上这样做,我该如何指定文件位置?
答案 0 :(得分:1)
Grails的最新版本提供了logback
支持。通常您会在logback.groovy
下找到grails-app/conf
。
功能齐全的文件示例:
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
,每天创建备份文件。