首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

不使用test-app进行日志记录;Grails 3.2.9

不使用test-app进行日志记录是指在Grails 3.2.9框架中,不使用test-app插件来记录日志。

Grails是一款基于Groovy语言的开源Web应用框架,它结合了Spring框架和Hibernate ORM(对象关系映射)技术,提供了简单、高效的开发方式。Grails框架内置了日志记录功能,可以帮助开发人员追踪和调试应用程序。

在Grails 3.2.9中,可以通过配置文件来设置日志记录方式。一种常见的配置方式是使用logback插件,它是一个功能强大的日志记录框架,可以灵活地配置日志输出的格式和级别。

以下是一个示例的logback配置文件(logback.groovy):

代码语言:groovy
复制
import ch.qos.logback.classic.PatternLayout
import ch.qos.logback.core.ConsoleAppender
import ch.qos.logback.core.encoder.LayoutWrappingEncoder

appender("STDOUT", ConsoleAppender) {
    encoder(LayoutWrappingEncoder) {
        layout(PatternLayout) {
            pattern = "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"
        }
    }
}

root(INFO, ["STDOUT"])

上述配置文件中,定义了一个名为"STDOUT"的控制台输出日志的appender,使用了PatternLayout来定义日志输出的格式。然后,将该appender配置为根logger的输出目标,设置日志级别为INFO。

通过以上配置,Grails应用程序将会将日志输出到控制台,并且只输出INFO级别及以上的日志信息。

在Grails应用程序中,可以使用日志记录器(Logger)来记录日志。例如,在控制器中使用日志记录器:

代码语言:groovy
复制
import org.slf4j.Logger
import org.slf4j.LoggerFactory

class MyController {
    Logger logger = LoggerFactory.getLogger(getClass())

    def index() {
        logger.info("This is an info message.")
        logger.error("This is an error message.")
    }
}

在上述示例中,通过调用getLogger方法获取到了一个日志记录器,并使用该记录器记录了一条INFO级别和一条ERROR级别的日志信息。

总结:

不使用test-app进行日志记录意味着在Grails 3.2.9中,可以通过配置文件和日志记录器来实现日志记录功能,而不依赖于test-app插件。可以使用logback插件来配置日志输出方式和格式,使用日志记录器来记录日志信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Spring Boot 使用 SLF4J 进行日志记录

昨天老师跟大家分享了Spring Boot 返回 JSON 数据及数据封装,今天来跟大家分享一下如何使用 SLF4J 进行日志记录。...定义日志输出级别 有了上面那些定义后,最后我们使用来定义一下项目中默认的日志输出级别,这里定义级别为 INFO,然后针对 INFO 级别的日志使用引用上面定义好的控制台日志输出和日志文件的参数。...使用 Logger 打印日志 在代码中,我们一般使用 Logger 对象打印 Log 信息,可以指定打印出的日志级别,也支持占位符,很方便。...同时可以打开 D:\logs\course03\ 目录,里面有项目刚刚启动时及后面生成的所有日志记录。项目部署后,我们大部分都通过查看日志文件来定位问题。...最后针对这些配置,在代码中使用 Logger 打印出一些信息进行测试。

1.1K30

使用go进行日志分析并生成excel,再也担心做日志分析了

这周工作的时候接到了一个需求,需要对一个日志文件进行分析,分析请求次数以及耗费的时间平均时间等信息,整理成excel表格,方便分析做优化。刚拿到这个需求的时候,着实有点懵逼。...那么多日志,我该怎么分析呢?该使用什么工具去分析呢。最后还要生成excel表格。哇,给我愁坏了。所以我开始并没有直接去做需求,而是去查资料、问同事、朋友,怎么做日志分析。...确定了语言,我就开始分析日志了,下面我就来详细介绍一下我是怎么使用go完成的日志分析,并成功生成excel表格。 代码已上传GitHub,可自行下载学习。...日志分析 分析之前,先看一下我们的需求:分析每个请求的次数,查询参数,平均时间。 确定了需求,下面我们开始对日志进行分析。每一行代表一个完整的日志请求。...总结 我也是第一次使用go进行日志分析。总体来说还是挺方便的。最主要是导出excel真的很方便。你学会了吗?没学会不要紧,我的示例代码已上传github,可自行下载学习。

58320

『互联网架构』软件架构-redis特性和集群特性(下)(50)

port 2.指定了记录日志的文件。 logfile 3.数据目录,数据库的写入会在这个目录。rdb、aof文件也会写在这个目录。...这个文件并不需要手动配置,这个配置文件有Redis生成并更新,每个Redis集群节点需要一个单独的配置文件,请确保与实例运行的系统中配置文件名称冲突 cluster-config-file nodes.conf...集群节点超时毫秒数 cluster-node-timeout 7.默认redis使用的是rdb方式持久化,这种方式在许多应用中已经足够用了。...但是redis如果中途宕机,会导致可能有几分钟的数据丢失,根据save来策略进行持久化,Append Only File是另一种持久化方式,可以提供更好的持久化特性。...3.两个都挂了(一主一从),不能用了 集群的方式不能使用select 1 直接选择数据库。但是它有槽的概念,cluster keyslot wst。可以看到这个key在那个槽位。

46740

简洁、高效、灵活:探索 Spring 同级别的编程框架

以上所有都通过Groovy语言的强大功能和领域特定语言(DSL)的广泛使用而变得易于使用Grails是构建在Springboot之上的,它利用了Spring的功能,例如依赖注入。...框架的创建者开发,并从多年来使用Spring、Spring Boot和Grails构建从单体到微服务的实际应用程序中汲取灵感。...等框架的缺点: 更快的启动时间 降低内存占用 最少使用反射 最少使用代理 易于单元测试 生成运行时字节码 这是通过在编译时预先计算框架基础结构来实现的,这减少了应用程序工作所需的运行时逻辑。...易于部署:Dropwizard框架采用可执行Jar包的形式进行打包和部署,可以轻松地在任何环境中运行,例如本地开发机器、云平台或Docker容器等。...它支持配置文件集中管理、应用程序监控、异常处理和日志记录等功能,帮助开发者更好地维护和管理应用程序。 这些框架在不同的场景和需求下具有各自的优势和特点,感兴趣的可以自行学习一下。

50850

redis缓存服务器

#在redis内部进行认证,推荐使用 10.0.0.200:6379> auth 123123 OK 10.0.0.200:6379> get name (nil) 10.0.0.200:6379> exit...因为每执行一条写操作,都要对磁盘上写一次,所以性能比较低,安全性最好,实时记录 1.6.7.5 AOF持久化的优点 1)使用AOF Redis会更具有可持久性(durable):你可以有很多不同的...有很多用户单独使用AOF,但是我们并不鼓励这样,因为时常进行RDB快照非常方便于数据库备份,启动速度也较之快,还避免了AOF引擎的bug。...• 复制功能也不会阻塞从服务器: 只要在 redis.conf 文件中进行了相应的设置, 即使从服务器正在进行初次同步, 服务器也可以使用旧版本的数据集来处理命令查询。...接到 SYNC 命令的主服务器会调用BGSAVE 命令,创建一个 RDB 文件,并使用缓冲区记录接下来执行的所有写命令。 3.

6.8K20

软件架构-redis特性和集群特性(下)

port 2.指定了记录日志的文件。 logfile 3.数据目录,数据库的写入会在这个目录。rdb、aof文件也会写在这个目录。...这个文件并不需要手动配置,这个配置文件有Redis生成并更新,每个Redis集群节点需要一个单独的配置文件,请确保与实例运行的系统中配置文件名称冲突 cluster-config-file nodes.conf...集群节点超时毫秒数 cluster-node-timeout 7.默认redis使用的是rdb方式持久化,这种方式在许多应用中已经足够用了。...但是redis如果中途宕机,会导致可能有几分钟的数据丢失,根据save来策略进行持久化,Append Only File是另一种持久化方式,可以提供更好的持久化特性。...3.两个都挂了(一主一从),不能用了 集群的方式不能使用select 1 直接选择数据库。但是它有槽的概念,cluster keyslot wst。可以看到这个key在那个槽位。

32420

redis-----简单介绍---基本的配置---持久化----学习笔记

127.0.0.1,否则从本地不能登录 bind 10.0.0.200 127.0.0.1 #取消保护模式,是否只允许本地登录 protected no #增加密码 requirepass {password} 设置上述的内容...#在redis内部进行认证,推荐使用 10.0.0.200:6379> auth 123123 OK 10.0.0.200:6379> get name (nil) 10.0.0.200:6379> exit...因为每执行一条写操作,都要对磁盘上写一次,所以性能比较低,安全性最好,实时记录 AOF持久化的优点 1)使用AOF Redis会更具有可持久性(durable):你可以有很多不同的fsync策略:没有fsync...3)当AOF文件变得很大时,Redis会自动在后台进行重写。...有很多用户单独使用AOF,但是我们并不鼓励这样,因为时常进行RDB快照非常方便于数据库备份,启动速度也较之快,还避免了AOF引擎的bug。

55330

MongoDB 写安全(Write Concern)

通过Write Concern来实现,客户端驱动调用db.getLastError()方法,错误返回给客户端 如果捕获到错误,则可以通过客户端定义的逻辑尝试再次写入或记录到特定日志等...日志之后应答客户端(需要开启journal功能) 则在意外重启,宕机等情形下可以通过journal来进行数据恢复 写入journal操作必须等待直到下次提交日志时完成写入...mongos> db.version() 3.2.9 mongos> db.version() 3.2.9 mongos> db test mongos>...写入journal操作必须等待直到下次提交日志时完成写入 提供通过journal来进行数据恢复 ?...4、副本集应答写入图示 对于使用副本集的场景,缺省情况下仅仅从主(首选)节点进行应答 建议修改缺省的应答情形为特定数目或者majority来保证数据的可靠 如下示例,w值为2,超时为

3K10

Redis集群性能问题深度分析

6,每个Redis集群版本升级在功能与性能上都有比较大的提升,需要持久化功能的集群后续可以使用4.0.2版本,另外如果使用虚拟化建议使用XEN、Hyper-V等,最好使用vSphere压力测试vSphere...一,发现问题 1,慢查询 slowlog get n 默认保留128个日志执行超过10毫秒的记录,可以根据实际情况修改 2,应用报错 主要是应用邮件报超时 二,分析问题 1,内在原因 1)API或数据结构使用不合理...慢查询日志有两个参数: slowlog-log-slower-than: 单位微妙,指定redis执行命令的最大时间,超过将记录到慢查询日志中, 不接受负值,如果设置为0每条命令都要记录到慢查询日志中...slowlog-max-len: 设置慢查询日志长度,如果慢查询日志已经到最大值,如果有新命令需要记录,就将最老那条记录删除,默认保存128,可以在线修改,CONFIG REWRITE保存。...命令统计 时间单位为微秒 单个命令10微妙以内,尽量避免高算法复杂的命令 setex平均26 del  平均43 hmset平均229 hmget平均12 以上特别是hmset要优化,另外hgetall命令建议使用

1.8K11

Groovy on Grails 交流活动

Groovy on Grails 一些文章的翻译: 10 个对于 Grails 的误解 通常情况下所谓 “新” 的东西出现总是会伴随着许许多多的流言与困惑,Grails例外,许多人也许会因为这个而放弃继续使用它...“Grails 需要它特有的运行环境。” !你只需要使用grails war” 命令将应用打包成一个 WAR 文件,并将其部署到你最喜欢的应用程序容器中即可。...,他还给了 Groovy 团队一大笔股票以支持他们去进行改变的尝试。...我将 “Grails 现状” 作为周四晚上的主题,从 Grails1.0 发布以来不断发展和技术的双重角度进行了分析。...请看 Grails 邮件列表统计,这已经突破了先前的记录,在一月达到平均 140 条每日的数量,看来在二月,这个情况也会差不多。

1.7K20

mongoDB 定长集合(capped collection)

比如需要保存应用程序的某一个时间段日志,对于历史日志需要定期老化。这种情形下,定长集合就派上了用场。本文描述了定长集合的特性以及给出相关演示。...一、定长集合的特性 需要事先创建,创建时指定大小,即大小固定,后续不可以随意改变 新文档被插入到队列末尾 使用循环的方式老化最老的文档,即不支持从定长集合手动删除文档 数据被顺序写入到磁盘上的固定空间...固定集合不能被分片 由于覆盖特性,其应用场景通常可以用于记录日志 二、演示定长集合 //mongoDB版本及运行环境 C:\Users\Think>mongod --version db version...v3.2.9 git version: 22ec9e93b40c85fc7cae7d56e7d6a02fd811088c OpenSSL version: OpenSSL 1.0.1p-fips 9...max指定collection中的document的个数 C:\Users\Think>mongo MongoDB shell version: 3.2.9 connecting to: test /

84320

Rails框架流行在他的设计理念

这两天看了一本书《Grails权威指南》,看了这个Java上Rails框架,其中有两条设计理念: 1、make simple thing easy and make complex possible...看看在.NET进行Rails式的敏捷开发工具包: 1、MVC框架: 无论是Castle MonoRail还是ASP.NET 的MVC框架清晰,简洁,你要用这两个开发web框架,就一定要按他的方式做,model...文件就放在models目录里,controller,view,helper分别放在特定名称的目录里,只要你按这个规则做了,那一切很简单,如果你较真抬杠非这么放,那么也许能达到目标,但很累。...2、O/R Mapping: NHibernate,IbatisNet等ORM架构都有至少有一个记录OR映射关系的配置文件,然而Rails框架没有,它使用Scaffold生成model,默认情况下就是英文复数的表名对应单数的...可参看jQuery 和 MonoRail 4、Loger: 对一个web应用,log是很常用的,Castle 框架和spring.net,MS企业类库都有log,还有一个更通用的Log库,可参看通用日志

1.9K50

【Bug周刊】Vol.1

前言 最近开发中遇到很多相同的问题,下意识去翻自己的历史记录,但又没能快速定位。...我的trilium一直用来记录自己的周报和相关教程,对于常见的bug和修复方案也找不到合适的地方,只能穿插在日报的历史中,随时间沉没。无意间翻到子舒的奇趣周刊,Bug周刊也由此而生。...dism++进行空间回收时,勾选“被取代的WinSxS组件”出错,无法正常进行清理,这是版本的bug,更新版本至10.1.1002.1或更高版本。...在workflow上了解到, AdBlockers 有一些规则,即它们将 URI 与某种类型的表达式进行匹配,对我插件的链接产生了误报。...vuepress 1.8 版本搭建说明文档,想实现一个加密的效果,使用npm仓库的vuepress-plugin-posts-encrypt插件,但是部署后访问缓慢,打开控制台查看资源加载速度后,发现该插件引入的静态资源使用的是

13910
领券