`
sillycat
  • 浏览: 2539612 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Grails(24)Grails Deploying and Logging with Tomcat

 
阅读更多

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&amp;useServerPrepStmts=false&amp;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 Persistence with GORM and GSQL

    Eclipse下搭建Grails项目

    【Grails项目搭建详解】 Grails是一个基于Groovy语言的开源Web应用框架,它简化了开发过程,尤其适合快速构建动态网站。在Eclipse中搭建Grails项目可能相对复杂,但通过以下步骤,即使是初学者也能顺利进行。 1. *...

    Grails Grails Grails

    **Grails 框架详解** Grails 是一个基于 Groovy 语言的开源Web应用程序框架,它构建在Java平台之上,旨在简化开发过程并提高生产力。Grails 的设计深受Ruby on Rails的影响,提供了MVC(模型-视图-控制器)架构模式...

    Agile Development with Groovy and Grails.pdf

    在《Agile Development with Groovy and Grails》这本著作中,作者Christopher M. Judd(Judd Solutions, LLC 的总裁兼顾问)详细介绍了如何运用Groovy和Grails框架进行敏捷软件开发。此书不仅适合那些对敏捷方法论...

    Grails权威指南 Grails权威指南

    《Grails权威指南》是一本全面深入探讨Grails框架的专著,旨在帮助读者掌握这一强大的Web开发工具。Grails是一种基于Groovy语言的开源框架,它为构建现代、高效的应用程序提供了简洁高效的解决方案。本指南针对不同...

    grails中文参考手册

    Grails兼容广泛的Java应用服务器,包括但不限于Apache Tomcat、Jetty、Resin等,这使得Grails应用能在不同的环境中无缝运行。 8. **创建工件** Grails提供了多种命令用于生成模型类、控制器、服务等工件,如`...

    eclipse开发grails插件

    对于Grails开发,我们需要的是Eclipse中的Grails插件,它能够提供对Grails项目的创建、运行、调试等一系列功能。 **Grails**是基于Groovy语言的全栈式Web开发框架,它借鉴了Ruby on Rails的设计理念,提供了快速...

    grails-用户手册

    《Grails用户手册》 Grails,作为一个基于Groovy语言的开源Web应用框架,深受开发者喜爱,它简化了Java开发的复杂性,提供了强大的MVC(Model-View-Controller)架构,以及丰富的插件系统。这份用户手册将帮助你...

    the definitive guide to grails 2

    《Grails 2 的终极指南》是一本深入探讨Grails框架精髓的专业书籍,该书以英文撰写,旨在为读者提供全面、深入的Grails框架学习资料。Grails框架基于Groovy语言,是一种高度动态、敏捷的Java应用开发框架,它简化了...

    grails-2.4.4.zip

    部署时,通常会将Grails应用打包成WAR文件,部署在Tomcat、Jetty等Servlet容器上。 8. **最佳实践** 在实际开发中,了解并遵循Grails的最佳实践至关重要,例如,合理划分领域模型、充分利用GSP标签库、使用Service...

    grails快速开发web

    - **开发工具**:推荐使用适合 Groovy 和 Grails 开发的 IDE,例如 IntelliJ IDEA 或 Eclipse with Groovy 插件。 - **技术图书**:可以通过阅读 Groovy 和 Grails 相关的技术书籍加深理解。 - **国内论坛**:可以...

    Getting-Started-with-Grails-Chinese.rar_Getting Started_grails

    《Getting Started with Grails》是一本面向初学者的指南,主要介绍了Grails这一现代Web开发框架的使用。Grails是一个基于Groovy语言的开源框架,它简化了Java平台上的Web应用开发,提供了丰富的功能和高效的生产力...

    Grails企业web应用开发与部署

    《Grails企业Web应用开发与部署》 在现代软件开发领域,Grails作为一个基于Groovy语言的开源Web应用框架,以其高效、灵活和强大的特性深受开发者喜爱。它提供了丰富的插件系统,使得企业级Web应用的开发变得快速而...

    Grails1.1中文文档

    11. **部署**:最后,文档会介绍如何将Grails应用部署到不同的服务器环境,如Tomcat、Jetty等。 通过阅读这份《Grails 1.1 中文文档》,开发者能够全面理解Grails框架的架构、工作原理和最佳实践,从而高效地开发出...

    grails中文入门简介

    Grails是一个基于Groovy语言的全栈框架,它遵循约定优于配置的原则,并且紧密集成Spring和Hibernate等流行的Java库,简化了开发流程。Grails在IT行业中尤其受到重视,因为它能够帮助开发者快速搭建并部署基于MVC模式...

    eclipse插件grails(groovy)

    Eclipse 插件 Grails(Groovy)是一个强大的开发工具,它使得在Eclipse环境中进行Groovy和Grails应用的开发变得更为便捷。Groovy是一种动态、面向对象的编程语言,而Grails则是一个基于Groovy的开源Web应用框架,...

Global site tag (gtag.js) - Google Analytics