标签: logging

如何追踪log4net问题

我一直都在使用log4net,但有一点我从未弄清楚的是如何判断内部发生了什么.例如,我的项目中有一个控制台appender和一个数据库appender.我对数据库和代码做了一些更改,现在数据库appender不再起作用了.我会弄清楚为什么最终,但如果我能看到log4net里面发生了什么,那将会有很大帮助.

log4net是否生成任何类型的输出,我可以查看以尝试确定问题的根源?

.net logging log4net

182
推荐指数
4
解决办法
8万
查看次数

如何在记录器中对消息执行JUnit断言

我有一些测试代码,它调用Java记录器来报告其状态.在JUnit测试代码中,我想验证在此记录器中是否输入了正确的日志.以下内容:

methodUnderTest(bool x){
    if(x)
        logger.info("x happened")
}

@Test tester(){
    // perhaps setup a logger first.
    methodUnderTest(true);
    assertXXXXXX(loggedLevel(),Level.INFO);
}
Run Code Online (Sandbox Code Playgroud)

我想这可以通过特殊改编的记录器(或处理程序或格式化程序)来完成,但我更愿意重用已经存在的解决方案.(而且,说实话,我不清楚如何从记录器获取logRecord,但假设这是可能的.)

java logging junit assert

177
推荐指数
14
解决办法
15万
查看次数

Node.js记录

是否有任何库可以帮助我处理Node.Js应用程序中的日志记录?我想要做的就是,我想将所有日志写入文件,我还需要一些选项,比如在特定大小或日期后推出文件.


我已经整合了log4js,试图将所有配置细节保存在一个文件中,并仅使用其他应用程序文件中的方法以便于维护.但它没有按预期工作.这就是我想要做的

var log4js = require('log4js'); 
log4js.clearAppenders()
log4js.loadAppender('file');
log4js.addAppender(log4js.appenders.file('test.log'), 'test');
var logger = log4js.getLogger('test');
logger.setLevel('ERROR');


var traceLogger = function (message) {
        logger.trace('message');
    };

var errorLogger = function (message) {
        logger.trace(message);
    };


exports.trace = traceLogger;
exports.error = errorLogger;
Run Code Online (Sandbox Code Playgroud)

我已将此文件包含在其他文件中并尝试过

log.error ("Hello Error Message");
Run Code Online (Sandbox Code Playgroud)

但它没有用.这有什么不对吗?

logging libraries node.js

174
推荐指数
5
解决办法
16万
查看次数

如何自定义Python日志记录的时间格式?

我是Python的日志包的新手,并计划将它用于我的项目.我想根据自己的口味定制时间格式.这是我从教程中复制的一个简短代码:

import logging

# create logger
logger = logging.getLogger("logging_tryout2")
logger.setLevel(logging.DEBUG)

# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)

# create formatter
formatter = logging.Formatter("%(asctime)s;%(levelname)s;%(message)s")

# add formatter to ch
ch.setFormatter(formatter)

# add ch to logger
logger.addHandler(ch)

# "application" code
logger.debug("debug message")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
logger.critical("critical message")
Run Code Online (Sandbox Code Playgroud)

这是输出:

2010-07-10 10:46:28,811;DEBUG;debug message
2010-07-10 10:46:28,812;INFO;info message
2010-07-10 10:46:28,812;WARNING;warn message
2010-07-10 10:46:28,812;ERROR;error message
2010-07-10 10:46:28,813;CRITICAL;critical message
Run Code Online (Sandbox Code Playgroud)

我想将时间格式缩短为:' 2010-07-10 10:46:28',删除mili-second后缀.我查看了Formatter.formatTime,但很困惑.感谢您帮助我实现目标.谢谢.

python formatting logging datetime

171
推荐指数
5
解决办法
10万
查看次数

Ruby on Rails生产日志轮换

在Ruby on Rails生产应用程序上启用日志轮换的最佳方法是什么?

是通过在托管服务器上使用logrotate还是在从应用程序初始化记录器时有一组选项可用?

logging ruby-on-rails production-environment

166
推荐指数
5
解决办法
6万
查看次数

子进程命令的实时输出

我正在使用python脚本作为流体动力学代码的驱动程序.当运行模拟时,我subprocess.Popen用来运行代码,从stdout和stderr收集输出到subprocess.PIPE---然后我可以打印(并保存到日志文件)输出信息,并检查是否有任何错误.问题是,我不知道代码是如何进展的.如果我直接从命令行运行它,它会给我输出关于它在什么时间迭代,什么时间,下一个时间步骤是什么等等的输出.

有没有办法既存储输出(用于记录和错误检查),还产生实时流输出?

我的代码的相关部分:

ret_val = subprocess.Popen( run_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True )
output, errors = ret_val.communicate()
log_file.write(output)
print output
if( ret_val.returncode ):
    print "RUN failed\n\n%s\n\n" % (errors)
    success = False

if( errors ): log_file.write("\n\n%s\n\n" % errors)
Run Code Online (Sandbox Code Playgroud)

最初我正在run_command通过管道,tee以便副本直接进入日志文件,并且流仍然直接输出到终端 - 但这样我就不能存储任何错误(对我的知识).


编辑:

临时解决方案:

ret_val = subprocess.Popen( run_command, stdout=log_file, stderr=subprocess.PIPE, shell=True )
while not ret_val.poll():
    log_file.flush()
Run Code Online (Sandbox Code Playgroud)

然后,在另一个终端,运行tail -f log.txt(st log_file = 'log.txt').

python error-handling shell logging subprocess

165
推荐指数
8
解决办法
13万
查看次数

Spring Boot - 如何在一个地方记录所有具有异常的请求和响应?

我正在用弹簧靴做休息api.我需要使用输入参数(使用方法,例如GET,POST等),请求路径,查询字符串,此请求的相应类方法,以及此操作的响应,成功和错误来记录所有请求.

举个例子:

成功要求:

http://example.com/api/users/1
Run Code Online (Sandbox Code Playgroud)

日志应该看起来像这样:

{
   HttpStatus: 200,
   path: "api/users/1",
   method: "GET",
   clientIp: "0.0.0.0",
   accessToken: "XHGu6as5dajshdgau6i6asdjhgjhg",
   method: "UsersController.getUser",
   arguments: {
     id: 1 
   },
   response: {
      user: {
        id: 1,
        username: "user123",
        email: "user123@example.com"   
      }
   },
   exceptions: []       
}
Run Code Online (Sandbox Code Playgroud)

或者请求错误:

http://example.com/api/users/9999
Run Code Online (Sandbox Code Playgroud)

日志应该是这样的:

    {
       HttpStatus: 404,
       errorCode: 101,                 
       path: "api/users/9999",
       method: "GET",
       clientIp: "0.0.0.0",
       accessToken: "XHGu6as5dajshdgau6i6asdjhgjhg",
       method: "UsersController.getUser",
       arguments: {
         id: 9999 
       },
       returns: {            
       },
       exceptions: [
         {
           exception: "UserNotFoundException",
           message: "User with id 9999 not found",
           exceptionId: "adhaskldjaso98d7324kjh989",
           stacktrace: ................... …
Run Code Online (Sandbox Code Playgroud)

java logging spring spring-rest

165
推荐指数
16
解决办法
22万
查看次数

登录Scala

在Scala应用程序中登录的好方法是什么?与语言哲学一致的东西,不会使代码混乱,并且维护成本低且不引人注目.这是一个基本要求清单:

  • 简单
  • 不会使代码混乱.Scala非常简洁.我不希望我的一半代码记录语句
  • 可以更改日志格式以适应我的其他企业日志和监视软件
  • 支持日志记录级别(即调试,跟踪,错误)
  • 可以记录到磁盘以及其他目的地(即套接字,控制台等)
  • 最低配置,如果有的话
  • 在容器中工作(即Web服务器)
  • (可选,但很高兴)作为语言的一部分或作为maven工件,所以我不必破解我的构建来使用它

我知道我可以使用现有的Java日志记录解决方案,但它们至少在上面的两个方面失败了,即混乱和配置.

谢谢你的回复.

logging scala

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

如何在MySQL中查看日志文件?

我已经读过Mysql服务器创建了一个日志文件,它记录了所有活动 - 比如何时执行查询和执行什么查询.

谁能告诉我我的系统中存在哪些内容?我怎么读呢?

基本上,我需要用不同的输入备份数据库[两个日期之间的备份]所以我想我需要在这里使用日志文件,这就是我想要这样做的原因......

我认为必须以某种方式保护此日志,因为可能会记录用户名和密码等敏感信息[如果有任何查询需要]; 它可能是安全的,不容易被看到吗?

我有root权限访问系统,我怎么能看到日志?

当我尝试打开/var/log/mysql.log时它是空的.

这是我的配置文件:

[client]
port        = 3306
socket      = /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket      = /var/run/mysqld/mysqld.sock
nice        = 0

[mysqld]
log = /var/log/mysql/mysql.log 
binlog-do-db=zero



user        = mysql
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
skip-external-locking

bind-address        = 127.0.0.1
#
# * Fine Tuning
#
key_buffer      = 16M
max_allowed_packet  = 16M
thread_stack        = 192K
thread_cache_size       = 8

general_log_file        = /var/log/mysql/mysql.log
general_log             = 1
Run Code Online (Sandbox Code Playgroud)

mysql logging

162
推荐指数
6
解决办法
61万
查看次数

log4j日志记录层次结构顺序

log4j日志记录的层次结构是什么?

DEBUG
INFO
WARN
ERROR
FATAL
Run Code Online (Sandbox Code Playgroud)

哪一个提供最高的日志记录有助于解决问题?任何人都可以提供从最高到最低日志记录的订单或层次结构吗?谢谢!

logging log4j

161
推荐指数
7
解决办法
19万
查看次数