Grails(24)Grails Deploying and Logging with Tomcat
1. Tomcat Configuration
DB configuration in conf/conext.xml
<Resource name="jdbc/lmm" auth="Container" type="javax.sql.DataSource"
maxIdle="30" maxWait="-1" maxActive="100"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
testOnBorrow="true"
validationQuery="select 1"
logAbandoned="true"
username="root"
password=“password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/sillycat?autoReconnect=true&useServerPrepStmts=false&rewriteBatchedStatements=true"/>
Change the bin/catalina.sh to fix the out of memory issue
export JAVA_OPTS="-Xms1024m -Xmx2046m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m -Dbuild.env=lmm.local"
2. Grails Logging
grails logging is controller by BuildConfig.groovy or some other groovy files. The content part should be as follow>
import org.apache.log4j.PatternLayout
import org.apache.log4j.Level
import org.apache.log4j.DailyRollingFileAppender
log4j = {
def logLayoutPattern = new PatternLayout("%d [%t] %-5p %c %x - %m%n")
appenders {
rollingFile name: "stacktrace", file: "/var/log/sillycat/stacktrace.log", maxBackupIndex: 5, threshold: Level.ERROR, layout:logLayoutPattern
console name: "stdout", threshold: Level.DEBUG, layout: logLayoutPattern
rollingFile name: "appFile", file: "/var/log/sillycat/appDebug.log", maxBackupIndex: 5, threshold: Level.ERROR, layout: logLayoutPattern
appender(new ScrubbingAppender(
name: "scrub",
threshold: Level.ERROR,
layout: logLayoutPattern,
regex: "^(com.sillycat).*\$"
))
appender new DailyRollingFileAppender(
name: "pushnotifications",
threshold: Level.ERROR,
layout: logLayoutPattern,
datePattern: "'.'yyyy-MM-dd-a",
file: "/var/log/sillycat/pushnotifications.log"
)
}
error appFile: [
'com.sillycat',
'grails.app.test.integration.com.sillycat.lmm.security',
'grails.app.service.com.sillycat.lmm.geoFences',
'grails.app.service.com.sillycat.lmm.events',
'grails.app.controller.com.sillycat',
'grails.app.bootstrap.com.sillycat',
‘grails.app.jobs'
],
stdout: [
'com.sillycat',
'com.sillycat.lmm.geoFences',
'com.sillycat.lmm.events',
'grails.app.service.com.sillycat.lmm.geoFences',
'grails.app.test.integration.com.sillycat.lmm.security',
'grails.app.service.com.sillycat.lmm.events',
'grails.app.controller.com.sillycat',
'grails.app.bootstrap.com.sillycat',
'grails.app.jobs.com.sillycat'],
pushnotifications: [
'com.sillycat.lmm.pushNotifications',
'grails.app.service.com.sillycat.lmm.events.StoreAnnouncementEventService',
'grails.app.service.com.sillycat.lmm.campaigns.StoreAnnouncementCampaignService',
'grails.app.service.com.sillycat.lmm.campaigns.BroadcastCampaignService',
'grails.app.service.com.sillycat.lmm.events.PushCallbackEventService',
'com.sillycat.lmm.campaigns.BroadcastCampaignService',
'com.sillycat.lmm.events.StoreAnnouncementEventService',
'grails.app.service.grails.plugin.executor']
root {
info 'scrub'
}
}
Pay attention to this line
rollingFile name: "stacktrace", file: "/var/log/sillycat/stacktrace.log", maxBackupIndex: 5, threshold: Level.ERROR, layout:logLayoutPattern
If I did not configure that it will automatically create a log file under tomcat command runtime directory or our grails command runtime directory.
3. Tomcat Logging Configuration
Logging file conf/logging.properties
I turn them off
1catalina.org.apache.juli.FileHandler.level = OFF
There are 7 level of the log
SERVRE(highest) > WARNING>INFO>CONFIG>FINE>FINER>FINEST
For example:
1catalina.org.apache.juli.FileHandler.level = OFF
1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.level = ALL
References:
http://huangrongyou.iteye.com/blog/1577508
http://stackoverflow.com/questions/6132095/problem-with-stacktrace-log-while-deploying-grails-app
http://stackoverflow.com/questions/15523510/permgen-space-error-when-deploying-tomcat-7
http://tomcat.apache.org/tomcat-7.0-doc/logging.html
相关推荐
Grails Persistence with GORM and GSQL
【Grails项目搭建详解】 Grails是一个基于Groovy语言的开源Web应用框架,它简化了开发过程,尤其适合快速构建动态网站。在Eclipse中搭建Grails项目可能相对复杂,但通过以下步骤,即使是初学者也能顺利进行。 1. *...
**Grails 框架详解** Grails 是一个基于 Groovy 语言的开源Web应用程序框架,它构建在Java平台之上,旨在简化开发过程并提高生产力。Grails 的设计深受Ruby on Rails的影响,提供了MVC(模型-视图-控制器)架构模式...
在《Agile Development with Groovy and Grails》这本著作中,作者Christopher M. Judd(Judd Solutions, LLC 的总裁兼顾问)详细介绍了如何运用Groovy和Grails框架进行敏捷软件开发。此书不仅适合那些对敏捷方法论...
《Grails权威指南》是一本全面深入探讨Grails框架的专著,旨在帮助读者掌握这一强大的Web开发工具。Grails是一种基于Groovy语言的开源框架,它为构建现代、高效的应用程序提供了简洁高效的解决方案。本指南针对不同...
Grails兼容广泛的Java应用服务器,包括但不限于Apache Tomcat、Jetty、Resin等,这使得Grails应用能在不同的环境中无缝运行。 8. **创建工件** Grails提供了多种命令用于生成模型类、控制器、服务等工件,如`...
对于Grails开发,我们需要的是Eclipse中的Grails插件,它能够提供对Grails项目的创建、运行、调试等一系列功能。 **Grails**是基于Groovy语言的全栈式Web开发框架,它借鉴了Ruby on Rails的设计理念,提供了快速...
《Grails用户手册》 Grails,作为一个基于Groovy语言的开源Web应用框架,深受开发者喜爱,它简化了Java开发的复杂性,提供了强大的MVC(Model-View-Controller)架构,以及丰富的插件系统。这份用户手册将帮助你...
《Grails 2 的终极指南》是一本深入探讨Grails框架精髓的专业书籍,该书以英文撰写,旨在为读者提供全面、深入的Grails框架学习资料。Grails框架基于Groovy语言,是一种高度动态、敏捷的Java应用开发框架,它简化了...
部署时,通常会将Grails应用打包成WAR文件,部署在Tomcat、Jetty等Servlet容器上。 8. **最佳实践** 在实际开发中,了解并遵循Grails的最佳实践至关重要,例如,合理划分领域模型、充分利用GSP标签库、使用Service...
- **开发工具**:推荐使用适合 Groovy 和 Grails 开发的 IDE,例如 IntelliJ IDEA 或 Eclipse with Groovy 插件。 - **技术图书**:可以通过阅读 Groovy 和 Grails 相关的技术书籍加深理解。 - **国内论坛**:可以...
《Getting Started with Grails》是一本面向初学者的指南,主要介绍了Grails这一现代Web开发框架的使用。Grails是一个基于Groovy语言的开源框架,它简化了Java平台上的Web应用开发,提供了丰富的功能和高效的生产力...
《Grails企业Web应用开发与部署》 在现代软件开发领域,Grails作为一个基于Groovy语言的开源Web应用框架,以其高效、灵活和强大的特性深受开发者喜爱。它提供了丰富的插件系统,使得企业级Web应用的开发变得快速而...
11. **部署**:最后,文档会介绍如何将Grails应用部署到不同的服务器环境,如Tomcat、Jetty等。 通过阅读这份《Grails 1.1 中文文档》,开发者能够全面理解Grails框架的架构、工作原理和最佳实践,从而高效地开发出...
Grails是一个基于Groovy语言的全栈框架,它遵循约定优于配置的原则,并且紧密集成Spring和Hibernate等流行的Java库,简化了开发流程。Grails在IT行业中尤其受到重视,因为它能够帮助开发者快速搭建并部署基于MVC模式...
《Grails 中文参考手册》是一本全面介绍Grails框架的指南,旨在帮助开发者快速上手并深入理解Grails的各个核心概念和技术。Grails是一个基于Groovy语言的开源Web应用框架,它提供了高效的开发环境和强大的功能,使得...