grails 中的 log4j:在附加程序配置中使用变量时打印错误

2024-05-02

我在 grails 2.3.4 中使用 slf4j“DailyRollingFileAppender”。

当我尝试使用变量作为“文件”参数的一部分时,grails 总是在应用程序启动时打印一些错误日志。

但是我的应用程序的日志消息可以按预期打印到指定的“user-event.log”中,尽管 grails 给了我这些错误消息。

以下是我的 log4j 配置:

log4j = {
    // Example of changing the log pattern for the default console appender:
    appenders {
        console name: 'stdout', layout: pattern(conversionPattern: '%c{2} %m%n')
        appender new DailyRollingFileAppender(
                name: "userEventLog",
                file: "${event.log.dir}/user-event.log",
                layout: pattern(conversionPattern: '%m%n'),
                datePattern: "'.'yyyy_MM_dd",
                threshold: org.apache.log4j.Level.INFO
        )
    }

    info userEventLog: "app.bean.log.UserEventLog"
}

“event.log.dir”变量定义如下:

environments {
    development {
        // event log dir
        event.log.dir = "${userHome}/workspace/app/logs/event"
    }
    production {
        // event log dir
        event.log.dir = "/opt/www/app/logs/event"
    }
}

应用程序启动时在 grails 控制台中打印的错误消息是:

| Error log4j:ERROR Property missing when configuring log4j: event
| Error log4j:ERROR Property missing when configuring log4j: event

当我将“${event.log.dir}”变量替换为字符串路径(例如“/home/app/”)并重新启动 grails 时,错误消息消失。


Use Holders http://grails.org/doc/latest/api/grails/util/Holders.html读取配置属性。我认为在设置时它将无法读取配置属性本身log4j因为它是配置本身的一部分。

import grails.util.Holders

...

log4j = {
// Example of changing the log pattern for the default console appender:
    appenders {
        console name: 'stdout', layout: pattern(conversionPattern: '%c{2} %m%n')
        appender new DailyRollingFileAppender(
            name: "userEventLog",
            file: "${Holders.config.event.log.dir}/user-event.log",
            layout: pattern(conversionPattern: '%m%n'),
            datePattern: "'.'yyyy_MM_dd",
            threshold: org.apache.log4j.Level.INFO
        )
    }

    info userEventLog: "app.bean.log.UserEventLog"
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

grails 中的 log4j:在附加程序配置中使用变量时打印错误 的相关文章

  • 日志处理程序是否使用单独的线程?

    蟒蛇的日志处理程序 http docs python org library logging handlers html都很棒 其中一些 例如SMTP处理程序 http docs python org library logging han
  • UrlMappings 将 URL 指向 Grails 中的资产管道文件

    在 Grails 3 0 中 如何将 URL 映射到assets folder 例如 http localhost 8080 favicon ico gt grails app assets images bookmark ico 我尝试了
  • 更改 Logger 实例的全局设置

    我在用着java util logging Logger http download oracle com javase 1 4 2 docs api java util logging Logger html作为我的应用程序的日志引擎 每
  • 如何使用 Spring Resource.groovy 正确注入 Grails 服务

    使用 Grails 2 2 1 我定义了以下 Grails 服务 package poc class TestService def helperService class HelperService 我已经用过TestService如下
  • 如何在 Logstash 中将一个事件的字段引用到另一个事件?

    我目前正在处理日志 其中一些内容如下所示 00 19 59 771 07120 evtThread TRC gt Cem lt Core1 CALL STATE 00 20 00 199 05768 BCMApplicationThread
  • 关闭应用程序后如何调试

    我正在尝试重现问题 这需要在特定位置关闭并重新打开我的应用程序 这是我的问题 1 如何查看我的日志 使用NSLog命令 当我的 iPhone 未连接到 XCode 时 2 是否可以将iPhone模拟器的特定位置 例如市中心 设置为默认位置
  • 如何在视图中调用 Grails 服务?

    简单的问题 我有一个服务类 比方说helpersService 和一个方法def constructURI params 如何从模板视图调用此方法 我尝试了以下代码但没有成功 img src 但我得到以下结果 No signature of
  • 如何在构建 Android 应用程序的发布版本之前删除所有调试日志记录调用?

    根据谷歌的说法 我必须 停用源代码中对 Log 方法的任何调用 在将我的 Android 应用程序发布到 Google Play 之前 摘自第 3 节出版清单 https developer android com studio publi
  • Django 使用用户/IP 进行日志记录

    我正在使用 logging 模块来记录大量消息 我想将 用户 request user 添加到日志中 但是 虽然它在视图函数中可用 但我不想将其传递给所有助手 有谁知道这个方法吗 我正在考虑以某种方式跟踪跟踪 直到找到参数中带有 请求 的函
  • 如何用Java写入OS系统日志?

    Mac OS 有一个名为 Console 的应用程序 其中包含记录的消息 错误和故障 我相信 Windows 中的等效项是事件查看器 我想 Linux 上也有一个 但我不知道它是什么 也不知道它在哪里 是否可以像这样从 Java 输出获取消
  • XcodeColors 在 XCode 5 中不起作用

    我尝试安装XcodeColors在 XCode 5 中 但不幸的是 它不能与我从 XCode 4 6 获得的旧插件一起使用 下一步 我检查了 github 网站 在那里我看到了以下拉取请求 提供了 XCode 5 的工作版本 https g
  • 如何配置应用程序中的所有记录器

    Python 的日志记录模块允许模块或类定义自己的记录器 不同的记录器可以有不同的处理程序 其中一些可能选择记录到文件 而另一些则选择记录到标准输出 现在 我的应用程序使用其中几个模块 每个模块都有自己的记录器 这些记录器具有各种处理程序
  • 如何使用logging.conf文件使用RotatingFileHandler将所有内容记录到文件中?

    我正在尝试使用RotatingHandler用于 Python 中的日志记录目的 我将备份文件保留为 500 个 这意味着我猜它将创建最多 500 个文件 并且我设置的大小是 2000 字节 不确定建议的大小限制是多少 如果我运行下面的代码
  • grails 重写重定向控制器方法

    我试图覆盖默认的控制器重定向方法 但似乎无法让以下代码正常工作 我创建了一个插件 我正在尝试使用 doWithDynamicMethods 来替换重定向 def doWithDynamicMethods ctx gt application
  • PHP MVC 应用程序中哪里可以捕获异常?

    我有一个中小型 PHP 应用程序 用于练习 OOP 和 MVC 技能 我有初始化 引导程序调用的文件Router谁打电话控制器 gt 服务层 gt 存储库 数据库 然后将变量发送回视图层 所有依赖项均由 DiC IOC 处理 我创建抽象类
  • Morgan Logger + Express.js:写入文件并在控制台中显示

    我正在尝试将 Morgan 与 Express js 结合使用来编写日志文件 同时也在控制台上显示我的日志 我正在使用这段代码 var logger require morgan var accessLogStream fs createW
  • 有没有一种简单的方法来为每个类创建一个记录器实例?

    我现在使用静态方法来记录 因为我发现在Android中登录非常容易 但是现在我需要为不同的类配置不同的appender 所以我对静态记录方法有一个问题 我读了Log4J 创建 Logger 实例的策略 https stackoverflow
  • 如何在 python 日志记录中插入换行符?

    import logging logging basicConfig level logging DEBUG format asctime s levelname s message s datefmt H M S logging info
  • Spring boot 中特定包的自定义日志文件

    我有一个带有专门操作的java包 专业化是因为它们很少被使用 并且我不想将它们与普通日志记录混合在一起 我知道添加logging file myapplication log会将日志记录重定向到此文件 但有没有办法指定仅从特定包记录到另一个
  • 如何在 Python 中的函数入口、内部和退出处进行日志记录

    我希望能够使用 Python 日志记录工具在我的代码中进行简单且一致的日志记录 我能够执行以下操作 我希望所有现有 未来的模块和函数都有 输入 和 完成 日志消息 我不想添加相同的代码片段来定义日志记录参数 如下所示don t want t

随机推荐

  • CLR 2.0 和 CLR 4.0 之间的区别

    我阅读了无数关于 C 4 0 新功能的博客 帖子和 StackOverflow 问题 甚至新的 WPF 4 0 功能也开始公开出现 我找不到但想知道的内容 从 C WPF 开发人员的角度来看 CLR 4 0 有哪些主要变化 CLR 4 0
  • 是否保证 HttpSessionListener.sessionCreated() 在任何其他线程访问新会话之前完成?

    我正在尝试将值缓存在ConcurrentHashMap in the Session 为了避免竞争条件并确保在任何线程尝试使用我的地图之前创建它 我使用HttpSessionListener sessionCreated 将地图添加到Ses
  • Hive中group by后是否可以连接字符串字段

    我正在评估 Hive 需要在 group by 之后进行一些字符串字段连接 我找到了一个名为 concat ws 的函数 但看起来我必须显式列出所有要连接的值 我想知道是否可以在 Hive 中使用 concat ws 做这样的事情 这是一个
  • Actionscript 3主类是根,但不允许动画虚拟相机

    我最近开始使用 Actionscript 3 学习 Animate CC 我正在尝试使用 Animate 的 虚拟相机 功能 为我提供一个可以平移 旋转和缩放游戏的相机 当根没有子类时 很容易实现 Camera 例如 您可以在屏幕上放置一个
  • IntelliJ Idea 15 显示依赖包和项目包

    IntelliJ Idea 15 CE 在项目的包视图中显示来自库 依赖项的包 仅当项目的根包与某些依赖项的根包相同时才会发生这种情况 对于前 我的项目的根包是org 所以所有的依赖关系也有org包状org apache logging也被
  • 如何在 React 中使用原生 Node.js 插件

    我有一个反应项目 我想在其中使用this https github com svenpaulsen node ts3sdk client原生 Node js 插件 它是 C SDK 的包装器 我过去曾在 Electron 项目中成功使用过此
  • Jenkins 的 Gerrit 触发器找不到任何要构建的修订

    我在使用 Jenkins Gerrit 时遇到问题 这是我到目前为止得到的 Jenkins 中的 Gerrit 触发器配置似乎没问题 当我推送新的变更集时 Jenkins 构建就会启动 我用过这个 Jenkins Gerrit 触发器问题的
  • 旋转时键盘隐藏

    我正在开发 iPad 应用程序 在其中一个视图中 我有一个子视图 它在按钮点击事件时出现和消失 子视图包含一个UITextView 默认情况下 我将其设置为第一响应者 以便在视图出现时键盘立即出现 子视图也会消失UIKeyboardWill
  • 尝试添加到链接列表时,Valgrind 无限循环“信号 11 被丢弃”

    我正在尝试用 C 创建一个简单的单链表 并且在 Valgrind 中运行程序时遇到无限的 Singal 11 被删除 循环 我的 h 文件 ifndef TEST H define TEST H struct fruit char name
  • 使用 Qt 进行拖放:悬停时了解目标应用程序 - 这可能吗?

    我目前正在探索从 Qt 应用程序拖放到未知目标应用程序的可能性 问题是 Qt 应用程序是否可以接收有关即将接收 drop 的应用程序的信息 例如进程名称或标题 一个 虚构的 示例可以是将绘图从 Qt 窗口拖动到文本编辑器或电子表格编辑器 在
  • 通用存储库是否需要一个基实体类才能在任何地方应用?

    我正在使用 ASP NET MVC 创建一个 Intranet 网站洋葱架构 我一直在实现存储库模式 但遇到了困难 假设我有一个包含 IDDocument 的文档表 那么这是我的存储库 只有一种方法 class Repository
  • 如何使用react-router通过路由将props传递给react组件?

    我想将一些道具传递给 IndexRoute 上的组件 下面是我的代码片段 render root Element const store params this as any ReactDOM render
  • 键盘友好的 CSS 菜单

    我的问题是这个问题的续集 键盘可访问的网络下拉菜单 https stackoverflow com questions 3945490 keyboard accessible web dropdown menus 虽然上述问题表明 我们想出
  • Erlang 更好地支持哪种数据库(SQL)?

    你建议我在 Erlang 中使用什么 MySQL 还是 Postgres 哪个数据库有更好 更成熟 更稳定 更快 的 Erlang 驱动程序 The Erlang ODBC 接口 http erlang org doc apps odbc
  • 获取键列表的值列表

    是否有一种内置 快速的方法来使用字典的键列表来获取相应项目的列表 例如我有 gt gt gt mydict one 1 two 2 three 3 gt gt gt mykeys three one 我该如何使用mykeys以列表形式获取字
  • 使用 MapKit ios 绘制渐变折线

    我正在尝试使用叠加层 MKOverlay 跟踪 MKMapView 上的路线 但是 根据当前的速度 如果颜色发生变化 例如 如果用户从 65 英里每小时行驶到 30 英里每小时 则从绿色变为橙色 我希望在跟踪路线时执行类似 Nike 应用程
  • 使用 DrawImage 方法黑屏

    我必须使用绘制位图图像绘图上下文 DrawImage http msdn microsoft com en us library ms606804 28v vs 90 29 aspx method 使用下面的代码一切正常 BitmapIma
  • dplyr 中的 if_all 和 if_any 函数未运行

    我正在尝试使用以下方法复制这些示例if all and if any功能但不工作 Erro Problem with filter input 1 x n o foi poss vel encontrar a fun o if all i
  • 如何在收到一定数量的数据后调用 Web 服务并将其加载到表视图中

    我正在开发一个项目 在该项目中 首先调用 Web 服务 我们会获取大约 20 个数据 我们将这些数据加载到表视图中 一旦我们开始向上滚动查看视图 当它达到 20 个数时 我们需要为接下来的 20 个数调用服务 就像 Facebook 所做的
  • grails 中的 log4j:在附加程序配置中使用变量时打印错误

    我在 grails 2 3 4 中使用 slf4j DailyRollingFileAppender 当我尝试使用变量作为 文件 参数的一部分时 grails 总是在应用程序启动时打印一些错误日志 但是我的应用程序的日志消息可以按预期打印到