- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了 PermGen 内存问题,并使用 Java VisualVM 对其进行调试。
我将问题追溯到一行代码,该代码导致内存使用增加而不减少。通过这行代码,没有类被卸载。
代码行是:
LogManager.getLogger(Logger.class.getName());
我正在使用log4j2。有没有人对修复此行以消除内存问题有任何建议?
最佳答案
这是一个有根据的猜测。正如 the link offered @Joachim in the comments 建议的,增加 PermGen 空间意味着 ClassLoader 加载的类数量增加,或者内部字符串数量增加。
( See this StackOverflow question to learn more about String interning )
基于此,我会更改您的代码以引用静态内容,这可能 getName()
不会给您提供。
我推荐:
LogManager.getLogger(Logger.class.getName().intern());
或者更常见的是:
LogManager.getLogger(Logger.class);
<小时/>
但是您真的想针对 Logger.class
进行记录吗?
也许考虑实际做:
LogManager.getLogger(MyClassWhereLoggingHappens.class);
关于java - 由于 LogManager.getLogger(Logger.class.getName()); 导致 PermGen 空间增加;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28217754/
我正在努力提高我的 Java 优化技能。为了实现这一目标,我制作了一个旧程序,我正在尽最大努力让它变得更好。在这个程序中,我使用 SL4J 进行日志记录。为了获得记录器,我做了: private st
我正在尝试使用 log4j2 在 Java 中创建一个简单的日志记录应用程序。 看起来是这样的: package com.company; import java.io.IOException; im
我创建了一个扩展 logging.Logger 的 CustomLogger。我正在尝试使用 getLogger 来获取我的记录器实例化。这是我的代码: import os import sys im
我尝试将 getLogger 放在模块级别。然而,它也有一些缺点。这是我的例子: from logging.handlers import TimeRotatingFileHandler log_mo
在我的模块我有这个: import logging import my_module_name.log log = logging.getLogger(__name__) 这工作正常,但我希望能够覆盖
如何获取给定 python 实例的日志文件路径 logging调用 getLogger() 后的对象? 我的 python 应用程序在主 python 脚本中设置日志记录如下。 import logg
我将 copy-webpack-plugin 从 4.6.0 升级为 6.0.2我改变了我的代码 plugins: [ new CopyWebpackPlugin([{ from:
我设置了一个基本的 Java 程序。我正在关注这个tutorial并有这个确切的代码: import org.slf4j.Logger; import org.slf4j.LoggerFactory;
我想知道如何获取我的自定义记录器通过log4j的LogManger.getLogger()方法。 我几乎确定我的项目不需要自定义记录器并使用默认的 log4j 记录器。 但是,如有必要,我想使用自定义
我已经阅读了大量帖子和文档(在本网站和其他地方),指出 SFL4J 日志记录的推荐模式是: public class MyClass { final static Logger logger
为什么大多数 log4net 示例通过这样做来获取类的记录器: private static ILog logger = LogManager.GetLogger( System.Re
这个问题在这里已经有了答案: python & suds “ImportError: cannot import name getLogger” 但是我好像遇到了一个无法用答案解释的情况。 详情如下:
当我执行以下代码时,日志事件仅记录一次。我正在使用 log4j2 记录器。但是当我使用 java.util.logger 时,所有 3 个日志事件均已成功发布。 public class Tes
稍后编辑:(为什么我认为这与 here 的情况不同) 所有操作都在一个实例方法中完成,进进出出,我处理的每个文件一次。我提取的本地字段(而不是内联)没有在其他任何地方使用,所以 GC 在迭代后无论如何
要在 Java 中使用记录器,现在我使用如下代码: Logger logger = Logger.getLogger("MyLog"); FileHandler fh; try { // This
来自logging howto对于 Python 2.7(我的重点): A good convention to use when naming loggers is to use a module-
我有这段代码要测试: log = logging.getLogger(__name__) class A(object): def __init__(self): log.de
Logger来自log4j自己的包。如果用Logger.getLogger,需要一个log4j的jar包,用此方式你只能依log4j: LogFactory来自common-logging包。如果
我知道应该通过 LogManager.getLogger() 创建一个 log4j 记录器实例,它会执行一些反射魔法来检测调用类,因此名称对于特定的日志级别配置很重要。但是,如果我不喜欢手动创建记录器
我正在处理一些遗留代码,其中包含很多代码 private final Logger logger = LogManager.getLogger(ThisClassName.class); 我想知道输入
我是一名优秀的程序员,十分优秀!