标签: log-level

是否可以在运行时更改 AWS Lambda 的日志级别?

我在 AWS 上运行 Lamba,并使用 slf4j 进行日志记录

项目要求的一部分是可以在运行时设置日志级别,使用环境变量,但我不确定这是否可能

我正在使用以下代码,但将 UI 中的环境变量“LOG_LEVEL”更改为“DEBUG”对添加到 CloudWatch 日志的内容没有影响。这可能吗?

import org.apache.log4j.Level;
import org.apache.log4j.LogManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyLambdaHandler implements RequestHandler<Integer, String> {

    private static final Logger LOGGER = LoggerFactory.getLogger(MyLambdaHandler.class);

    static {
        org.apache.log4j.Logger rootLogger = LogManager.getRootLogger();
        String logLevel = (System.getenv("LOG_LEVEL") != null) ? System.getenv("LOG_LEVEL") : "INFO";
        rootLogger.setLevel(Level.toLevel(logLevel));
    }

    public String myHandler(int myCount, Context context) {

        LOGGER.debug("Entering myHandler lambda handler";
        LOGGER.info("Handling myCount {}", myCount);
        int returnValue = myCount * 2;
        LOGGER.debug("MyHandler return value {}", returnValue);
        return returnValue; …
Run Code Online (Sandbox Code Playgroud)

logging log4j slf4j aws-lambda log-level

10
推荐指数
1
解决办法
9402
查看次数

java.util.logging:如何通过logger包(或前缀)设置级别?

我的应用程序使用了许多库,我正在使用它们java.util.logging进行日志记录 我希望能够通过以下方式为每个库设置不同的日志记录级别:

org.datanucleus.*.level = WARNING
com.google.apphosting.*.level = WARNING
com.myapp.*.level = FINE
Run Code Online (Sandbox Code Playgroud)

有可能吗?

logging prefix package java.util.logging log-level

9
推荐指数
2
解决办法
2万
查看次数

IntelliJ: How to set log levels for tests

I have a problem with test console output in IntelliJ 2016. When I run JUnit tests via IntelliJ, the console window is flooded with enormous amounts of log lines, for example

DEBUG reactor.ipc ....
DEBUG io.netty.buffer.ByteBufUtil ....
Run Code Online (Sandbox Code Playgroud)

It's a simple Spring-Boot application which uses the default logging - I think it's slf4j. I tried setting

logging.level.reactor.ipc=WARN
Run Code Online (Sandbox Code Playgroud)

in my src/main/resources/application.properties and also setting

-Dlogging.level.root=WARN on the RunConfig's VM arguments, but neither has any effect on the log output. What is the …

logging junit intellij-idea spring-boot log-level

9
推荐指数
1
解决办法
7487
查看次数

方法进入/退出时使用什么日志级别?

方法退出/输入应该使用什么日志级别?

The log4j levels follow the following order.
DEBUG
INFO
WARN
ERROR
FATAL
Run Code Online (Sandbox Code Playgroud)

logging log4j log-level

8
推荐指数
1
解决办法
1716
查看次数

Log4j2通配符记录器名称

我正在使用log4j对我的一个应用程序进行一些日志记录。我的配置中的记录器看起来像这样。

<Root level="info">
    <AppenderRef ref="Console"/>
</Root>

<Logger name="org.eclipse.jetty.server.Server" level="warn" additivity="false">
    <AppenderRef ref="Console"></AppenderRef>
</Logger>
<Logger name="org.eclipse.jetty.util.log" level="warn" additivity="false">
    <AppenderRef ref="Console"></AppenderRef>
</Logger>
<Logger name="org.eclipse.jetty.server.ServerConnector" level="warn" additivity="false">
    <AppenderRef ref="Console"></AppenderRef>
</Logger>
Run Code Online (Sandbox Code Playgroud)

基本上,我希望从我编写的代码中获得“信息”级消息,但是我希望外部库仅在警告或更严重的情况下记录日志。

正如我所料,这正在工作,但是“ org.eclipse.jetty”下有很多类

有可能做这样的事情吗?

<Logger name="org.eclipse.jetty.*" level="warn">
    <AppenderRef ref="Console" level="warn"></AppenderRef>
</Logger>
Run Code Online (Sandbox Code Playgroud)

也就是说,我希望整个程序包中的所有内容仅发出警告/错误/致命信息。

我尝试了上面,但没有效果。是否有“通配符”或我可以用来为软件包中的所有内容设置记录器的东西?

java logging wildcard log4j2 log-level

6
推荐指数
1
解决办法
4666
查看次数

默认情况下,python logger级别从root设置继承为警告

在我的程序中,我在开头定义了一个类似于此的记录器:

def start_logger():
        fh = logging.handlers.RotatingFileHandler('logger.log', 
                                                  maxBytes=1000000, 
                                                  backupCount=100)
        fh.setLevel(logging.DEBUG)

        ch = logging.StreamHandler(sys.stdout)
        ch.setLevel(logging.DEBUG)

        fh_fmt = '%(asctime)s %(levelname)8s %(message)s [%(filename)s:%(lineno)d]'
        #fh_fmt = '%(asctime)s - %(funcName)s - %(levelname)s - %(message)s'

        ch_fmt = '%(asctime)s %(levelname)8s %(message)s [%(filename)s:%(lineno)d]'
        #ch_fmt = '%(funcName)s - %(levelname)s - %(message)s'

        fh.setFormatter(logging.Formatter(fh_fmt))
        ch.setFormatter(logging.Formatter(ch_fmt))

        root = logging.getLogger()
        root.addHandler(fh)
        root.addHandler(ch)
Run Code Online (Sandbox Code Playgroud)

然后我有多个从我的主程序调用的文件.为了使它们正常工作,我需要执行以下操作:

import logging
log = logging.getLogger(__name__)
log.setLevel(logging.DEBUG)
log.debug("This debug message is ounly output when I set the level again to debug for this file. Otherwise the the log level for this file …
Run Code Online (Sandbox Code Playgroud)

python logging log-level

6
推荐指数
1
解决办法
1400
查看次数

如何在运行时提高NLog日志级别

log.Trace()我的应用程序在程序的开头有太多的内容,导致程序出现故障,所以我无法使用通用NLog配置来提高日志级别。

所以,我想提高运行时的日志级别。为此,我在互联网上找到了类似的内容:

foreach (var rule in LogManager.Configuration.LoggingRules)
{
    // Iterate over all levels up to and including the target, (re)enabling them.
    for (int i = 0; i <= 5; i++)
    {
        rule.EnableLoggingForLevel(LogLevel.FromOrdinal(i));
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,这似乎不起作用,因为以下行没有显示在日志中,尽管我确信这一行已经通过:

log.Trace("log trace works!");
Run Code Online (Sandbox Code Playgroud)

有谁知道一种方法来确保从我的源代码中的某个时刻开始,我可以看到log.Trace()结果?

供你参考:

  1. log定义为private static readonly Logger log = LogManager.GetCurrentClassLogger();.
  2. 我一直在寻找nlog.*包含<nlog>标签的文件,但没有找到任何内容。

编辑:
我正在使用NLog4.5.4 版本。

Edit2(尝试强制读取配置):
我已修改nlog.config文件如下:

foreach (var rule in LogManager.Configuration.LoggingRules)
{
    // Iterate over all levels …
Run Code Online (Sandbox Code Playgroud)

c# debugging runtime nlog log-level

6
推荐指数
1
解决办法
2767
查看次数

log4j/logback 将记录器级别作为参数传递

我想做一些看起来非常简单的事情:只需通过一个简单实用程序类中的方法传递大量日志记录命令(可能是全部,但特别是WARNERROR级别)。我特别想这样做,以便在测试期间我可以通过模拟执行此调用的方法来抑制实际输出到日志记录。

但是我不知道如何使用ch.qos.logback.classic.Logger,以Level为参数调用单个方法......显然我可以使用switch基于此值的命令,但是在某些日志记录框架中,有一两个方法可以让您通过Level作为参数记录。不提供这个似乎有点“原始”。

该方法可能看起来有点像这样:

Logger.log( Level level, String msg )
Run Code Online (Sandbox Code Playgroud)

之后

现在查找了“XY 问题”,我理解对这个问题的怀疑。动态日志被认为是不好的,至少在 Java 中是这样(在 Python 中可能更少)……现在我知道并理解首选的方法是适当地配置日志配置以进行测试。

但是,如果可以的话,还有一个小问题:虽然我还没有在这个特定项目中实现这一点,但我通常发现“只是”将堆栈跟踪追溯到特定Thread不足的开头,这就是 logback 所做的(Exceptions通过在WARNERROR水平)。我计划实施一个系统来记录Threads它们何时运行新的“快照” Threads......然后可以在Thread发生错误时列出(回到应用程序的第一个开始)。如果您愿意,这是使用某些东西“处理”传出日志调用的另一个理由。我想如果我想实现这样的东西,我将不得不尝试以某种方式扩展 logback 的一些元素。

java logging logback log-level

5
推荐指数
0
解决办法
946
查看次数

如何获取当前的 spdlog 级别?

我需要在某些代码之前关闭 spdlog 级别,然后将其返回到之前的值。

如何在关闭之前获得当前级别?

c++ logging spdlog log-level

5
推荐指数
2
解决办法
3707
查看次数

如何微调SonarQube Gradle插件的级别

我正在将SonarQube插件(版本2.6.1)用于Gradle(版本4.7),并且遇到的问题是,在我的CI服务器上运行声纳分析时,正在编写许多不重要的日志输出。

有没有一种方法可以微调此插件的日志级别

我检查了文档,但是与找到的日志输出相关的唯一设置是JVM参数“ verbose”,我没有使用任何一种方法(我猜默认设置是,false所以不应该为我打开它)。

编辑:这是一些我想摆脱的输出示例:

  1. 在findbugs分析期间有一些巨大的异常堆栈跟踪(这一段被缩短了,不想发布整个堆栈跟踪,这确实很大)。
16:23:34.993 ERROR - Unable to create symbol table for : /opt/workspace/pipeline-1/src/main/java/com/SomeClass.java
java.lang.NullPointerException: null
    at org.sonar.java.resolve.TypeAndReferenceSolver.getSymbolOfMemberSelectExpression(TypeAndReferenceSolver.java:232) ~[java-squid-2.5.1.jar:na]
    at org.sonar.java.resolve.TypeAndReferenceSolver.resolveAs(TypeAndReferenceSolver.java:200) ~[java-squid-2.5.1.jar:na]
    at org.sonar.java.resolve.TypeAndReferenceSolver.resolveAs(TypeAndReferenceSolver.java:182) ~[java-squid-2.5.1.jar:na]
    at...
Run Code Online (Sandbox Code Playgroud)
  1. 来自PMD的堆栈跟踪:
16:23:37.206 ERROR - Fail to execute PMD. Following file is ignored: /opt/workspace/pipeline-1/src/main/java/com/SomeClass.java
java.lang.RuntimeException: null
    at org.objectweb.asm.MethodVisitor.visitParameter(Unknown Source) ~[asm-5.0.3.jar:5.0.3]
    at org.objectweb.asm.ClassReader.b(Unknown Source) ~[asm-5.0.3.jar:5.0.3]
    at org.objectweb.asm.ClassReader.accept(Unknown Source) ~[asm-5.0.3.jar:5.0.3]
    at org.objectweb.asm.ClassReader.accept(Unknown Source) ~[asm-5.0.3.jar:5.0.3]
    at net.sourceforge.pmd.lang.java.typeresolution.PMDASMClassLoader.getImportedClasses(PMDASMClassLoader.java:77) ~[pmd-java-5.2.1.jar:na]...
Run Code Online (Sandbox Code Playgroud)
  1. 许多不相关的警告如下:
16:23:38.638 WARN  - /opt/workspace/pipeline-1/src/main/java/com/SomeClass.java: Got …
Run Code Online (Sandbox Code Playgroud)

gradle jenkins sonarqube gradle-plugin log-level

5
推荐指数
1
解决办法
441
查看次数