javascript

java

python

c#

android

node.js

c++

reactjs

php

html

jquery

css

.net

ios

git

ruby-on-rails

sql

c

string

ruby

调用logger.setL时使用变量

有谁知道在Python的Logging模块的setlevel()函数中是否有使用变量的方法?

目前,我正在使用此:

Log = logging.getLogger('myLogger')
Log.setLevel(logging.DEBUG)

但是我想要这个:

Log = logging.getLogger('myLogger')
levels = {'CRITICAL' : logging.critical,
    'ERROR' : logging.error,
    'WARNING' : logging.warning,
    'INFO' : logging.info,
    'DEBUG' : logging.debug
}
level = levels['INFO']
Log.setLevel(level)

但这似乎不起作用-它只是不记录任何内容。

我这样做是为了可以从单个配置文件中的变量设置一堆脚本的日志记录级别。

trans by 2020-02-20T01:41:25Z

python-如何将pprint模块的输出发送到日志fi

我有以下代码:

logFile=open('c:\\temp\\mylogfile'+'.txt', 'w')
pprint.pprint(dataobject)

如何将数据对象的内容以漂亮的打印格式发送到日志文件?

trans by 2020-02-19T17:27:50Z

Python使用basicConfig方法登录控制台和FI

我不知道为什么将此代码打印到屏幕上,而不打印到文件上? 文件“ example1.log”已创建,但未在其中写入任何内容。

#!/usr/bin/env python3
import logging

logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s %(message)s',
                    handlers=[logging.FileHandler("example1.log"),
                              logging.StreamHandler()])
logging.debug('This message should go to the log file and to the console')
logging.info('So should this')
logging.warning('And this, too')

我已经通过创建日志记录对象(示例代码)“绕过”了这个问题,但是它一直困扰着我,为什么basicConfig()方法失败了?

PS。 如果我将basicConfig更改为:

logging.basicConfig(level=logging.DEBUG,
                    filename="example2.log",
                    format='%(asctime)s %(message)s',
                    handlers=[logging.StreamHandler()])

然后,所有日志都在文件中,并且控制台中不显示任何内容

trans by 2020-02-17T20:22:37Z

java-单个Logg的每个附加程序的日志级别

是否可以根据附加程序为单个Logger配置不同的日志级别?

我意识到这与这个问题类似,这是我已经了解到的,但是问题是该阈值适用于登录到该附加程序的所有记录器,而我只希望该阈值适用于 单个记录器。

即到目前为止,我有这样的事情:

log4j.rootLogger=WARN, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold=WARN
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout

log4j.logger.mylogger=DEBUG,logfile
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.DatePattern=${roll.pattern.daily}
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{${datestamp}} [%t] %-5p %C{2} - %m%n
log4j.appender.logfile.File=mylogfile.log

我希望将Mylogger的DEBUG消息发送到日志文件追加器,但我也希望将Mylogger的INFO消息发送到stdout追加器(但对于所有其他记录器,仅WARN ings)。 使用阈值将stdout限制为WARN会限制mylogger的输出。

trans by 2020-02-17T12:08:33Z

标准-格式化日志的最佳做法是什么?

我正在编写一个蜜罐软件,该软件将广泛记录与之的交互,我打算记录纯文本.log文件。

我有两个问题,来自对服务器日志不太熟悉的人。

  1. 首先,我应该如何分解日志文件,假设运行了一个月后,我不想再有一个.log大文件,我该按日,月,年进行此操作吗? 是否有一些标准?

  2. 每行的格式是否有一个标准的分隔符,即*,-,+等? 哪里有任何标准(我的Google搜寻并没有提出太多建议)?

trans by 2020-02-17T03:14:59Z

日志记录-Python-避免在函数之间传递记录器引用?

我有一个使用内置logging的简单Python脚本。

我正在配置函数内部的日志记录。 基本结构如下所示:

#!/usr/bin/env python
import logging
import ...

def configure_logging():
    logger = logging.getLogger("my logger")
    logger.setLevel(logging.DEBUG)
    # Format for our loglines
    formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
    # Setup console logging
    ch = logging.StreamHandler()
    ch.setLevel(logging.DEBUG)
    ch.setFormatter(formatter)
    logger.addHandler(ch)
    # Setup file logging as well
    fh = logging.FileHandler(LOG_FILENAME)
    fh.setLevel(logging.DEBUG)
    fh.setFormatter(formatter)
    logger.addHandler(fh)
    return logger

def count_parrots():
    ...
    logger.debug??

if __name__ == '__main__':
    logger = configure_logging()
    logger.debug("I'm a log file")
    parrots = count_parrots()

我可以从__main__内部调用logger。但是,如何从count_parrots()函数内部调用logger? 处理这样的记录器的最Python方式是什么?

trans by 2020-02-16T04:12:16Z

python日志记录处理程序中setLevel的意义是什么?

假设我有以下代码:

import logging
import logging.handlers

a = logging.getLogger('myapp')
h = logging.handlers.RotatingFileHandler('foo.log')
h.setLevel(logging.DEBUG)
a.addHandler(h)

# The effective log level is still logging.WARN
print a.getEffectiveLevel() 
a.debug('foo message')
a.warn('warning message')

我希望在处理程序上设置setLevel会导致将调试级别的消息写入日志文件。 但是,这会打印30表示有效级别(等于logging.WARNING,默认值),并且仅将warn消息记录到日志文件中,而不记录调试消息。

似乎该处理程序的日志级别正在下降,例如 它被默默地忽略了。 这让我感到奇怪,为什么处理程序上根本没有setLevel

trans by 2020-02-15T09:15:46Z

日志记录-我应该将消息记录到stderr还是stdout?

我有一个正在编写的程序,希望为此编写一个自定义的日志记录功能(例如诊断,通知,警告,错误)。

我应该使用stdout还是stderr流来执行此操作? 它是一种解释器,用户可以要求它打印输出。

编辑:请停止向我推荐日志记录框架:(

trans by 2020-02-14T18:47:52Z

记录Android本机nd中变量的值

我在Android NDK中使用C ++设置了日志记录。

我可以这样向logcat打印一条消息:

__android_log_write(ANDROID_LOG_INFO, "tag here", "message here");

现在,假设我有一个称为testint的整数。 如何打印此int的值?

像这样的东西打印地址,但我想要的值。 我没有在C ++中找到有关如何执行此操作的任何内容。 谢谢你的帮助!

__android_log_print(ANDROID_LOG_INFO, "sometag", "%p", *test);
trans by 2020-02-11T11:51:50Z

.net-跟踪与日志记录以及log4net如何配合?

我想知道日志记录和跟踪之间的区别是什么。

区别是,跟踪是更详细的日志,从而为开发人员提供了一种在运行时调试应用程序的工具吗?

我一直在尝试使用log4net并进行日志记录。 现在,我想知道是否也应该进行跟踪,以及是否可以/应该为此使用log4net。我应该使用log4net进行跟踪吗,log4net记录器是否有某种跟踪级别? 我应该将其他日志级别用于调试和跟踪目的还是可以使用相同的日志级别?您能举一个简单的例子来说明如何为一个简单的方法进行日志记录和跟踪吗?

编辑:尽管下面提供了一些有用的答案,但我仍然不确定如何进行跟踪和日志记录。

我的业务层中有以下方法,我想向其中添加日志记录/跟踪。 我想知道如何有效地做到这一点。 就日志记录/跟踪而言,以下方法是否可以接受? 日志消息应该是Info类型,而不是Debug类型? 我正在记录的调试消息是否被视为跟踪? 您将如何更改?


trans by 2020-02-11T08:20:59Z

java-如何使SLF4J“ Hello World”与log4j一起使用?

SLF4J的“ Hello World”示例对我不起作用。 我猜这是因为我在类路径中添加了slf4j-log4。 我应该直接为您好世界配置log4j吗?

log4j:WARN No appenders could be found for logger (HelloWorld).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

更新:我添加了log4j初始化,但仍然不起作用:

public static void main(String[] params) {
        org.apache.log4j.Logger.getRootLogger().addAppender(new ConsoleAppender());
        Logger logger = org.slf4j.LoggerFactory.getLogger(TestBase.class);
        logger.info("Hello World");
    }

我得到:

log4j:ERROR No output stream or file set for the appender named [null].
trans by 2020-02-10T13:51:43Z

记录删除/检查/修改由fileConfig()配置的处理程序

如何使用fileConfig()函数删除/检查/修改为记录器配置的处理程序?

要删除,有Logger.removeHandler(hdlr)方法,但是如果它是从文件中配置的,我该如何首先获得该处理程序?

trans by 2020-02-08T06:39:12Z

CodeGo.net>让log4net使用应用程序配置文件进行配置

我想将log4net配置数据存储在我的application.config文件中。 基于对文档的理解,我做了以下工作:

  1. 添加对log4net.dll的引用

  2. 在AssemblyInfo.cs中添加以下行:

    private static readonly ILog log = LogManager.GetLogger(typeof(frmWizard));
    
  3. 初始化记录器,如下所示:

    private static readonly ILog log = LogManager.GetLogger(typeof(frmWizard));
    
  4. 我的app.config中包含以下代码:

    <configSections>
      <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    </configSections>
    <log4net>
      <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
        </layout>
      </appender>
      <root>
        <level value="INFO" />
        <appender-ref ref="ConsoleAppender" />
      </root>
    </log4net>

但是,当我运行该应用程序时,在控制台上出现以下错误:

找不到名为[Consoleappender]的附加程序。

如何获取log4net从配置文件中读取设置?

谢谢!

trans by 2020-02-08T04:39:19Z

日志记录-将服务器日志文件写入数据库是个好主意吗?

在阅读了O'Reilly的一篇关于该主题的文章之后,我想请Stack Overflow提供他们对此事的想法。

trans by 2020-02-07T13:56:33Z

Java-Logback:两个附加程序,多个记录器,不同级别

我想在我的应用程序(Spring Integration)中有两个日志文件,debug.log和main.log。 我想在INFO级别运行main.log,在DEBUG级别运行debug.log。 这可以通过追加程序上的过滤器完成。 我想根据源将不同级别记录到附加程序。 换一种说法

<logger name="org.springframework" level="ERROR">
    <appender-ref ref="main" />
</logger>
<logger name="org.springframework" level="DEBUG">
    <appender-ref ref="debug" />
</logger>
<logger name="com.myapp" level="INFO">
    <appender-ref ref="main" />
</logger>
<logger name="com.myapp" level="DEBUG">
    <appender-ref ref="debug" />
</logger>

总结一下:

  1. 弹簧记录器
    • 主要->错误
    • 调试->调试
  2. com.myapp记录器
    • 主要->信息
    • 调试->调试

因此,我必须使记录器在DEBUG上运行,并且追加器上的阈值过滤器不够精细。

更新为问题增加了清晰度

trans by 2020-02-06T15:29:02Z

java.util.logging.Logger不尊重java.util.logging.Level吗?

在纯Java SE 6环境中:

Logger l = Logger.getLogger("nameless");
l.setLevel(Level.ALL);
l.fine("somemessage");

Eclipse控制台中未显示任何内容。 l.info(“”)及以上版本可以正常工作,但任何以下方面似乎都无法正常工作。 有什么问题吗?TIA。

trans by 2020-02-05T10:44:43Z

Python:日志记录模块-全局

我想知道如何实现一个全局记录器,该记录器可以用自己的设置在任何地方使用:

我目前有一个自定义记录器类:

class customLogger(logging.Logger):
   ...

该类在一个单独的文件中,其中包含一些格式化程序和其他内容。记录器可以完美地独立运行。

我将此模块导入到主python文件中,并创建一个像这样的对象:

self.log = logModule.customLogger(arguments)

但是显然,我无法从代码的其他部分访问此对象。我使用错误的方法吗? 有一个更好的方法吗?

trans by 2020-02-04T22:27:24Z

java-不要在服务器端编码中使用System.out.println

我听说使用System.out.println进行日志记录是非常糟糕的做法,这可能会导致服务器出现故障。

我不使用这种方法,但是我非常想知道为什么在后端代码中使用System.out.println会造成如此垃圾的后果。

trans by 2020-02-04T21:15:23Z

python-如何在Google App Engine中写入控制台?

通常,当我编码时,我只是喜欢打印一些小东西(大多数是变量的当前值)输出到控制台。 尽管我注意到Google App Engine启动器确实具有Log终端,但我在Google App Engine中看不到类似的信息。 有什么方法可以使用Google App Engine写到上述终端或其他终端吗?

trans by 2020-02-01T02:13:35Z

线程安全日志记录类实现

以下是实现相当简单的线程安全日志记录类的正确方法吗?

我知道我从来没有明确关闭TextWriter.Synchronized,这会是一个问题吗?

最初使用TextWriter.Synchronized方法时,它似乎无法工作,直到我在静态构造函数中对其进行了初始化并将其设置为只读,如下所示:

public static class Logger
{
    static readonly TextWriter tw; 

    static Logger()
    {
        tw = TextWriter.Synchronized(File.AppendText(SPath() + "\\Log.txt")); 
    }

    public static string SPath()
    {
        return ConfigManager.GetAppSetting("logPath"); 
    }

    public static void Write(string logMessage)
    {
        try
        {
            Log(logMessage, tw);
        }
        catch (IOException e)
        {
            tw.Close();
        }
    }

    public static void Log(string logMessage, TextWriter w)
    {
        w.WriteLine("{0} {1}", DateTime.Now.ToLongTimeString(),
            DateTime.Now.ToLongDateString());
        w.WriteLine("  :");
        w.WriteLine("  :{0}", logMessage);
        w.WriteLine("-------------------------------");

        // Update the underlying file.
        w.Flush();
    }
}
trans by 2020-01-30T11:11:59Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 下一页 共14页