标签: logging

如何配置slf4j能够写入控制台和文件?

目前我正在使用log4j,但许多Java技术使用slf4j(例如hibernate).我想配置log4j而不是slf4j.这是我的log4j文件:

log4j.rootLogger=trace, stdout, file

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.encoding=UTF-8
log4j.appender.stdout.target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.conversionPattern=%d{ABSOLUTE} %5p %t %c{1}:%M:%L - %m%n

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.encoding=UTF-8
log4j.appender.file.append=false
log4j.appender.file.file=myproject.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.conversionPattern=%d{ABSOLUTE} %5p %t %c{1}:%M:%L - %m%n
Run Code Online (Sandbox Code Playgroud)

有人能给我看一个适合它的配置文件吗?PS如何从Servlets登录?因为他们在tomcat webapps的战争中.在这种情况下,他们在哪里写日志?

java logging slf4j

0
推荐指数
1
解决办法
5294
查看次数

为什么我不能拖尾我的日志?

在我的python脚本中,我有这个:

count = 0
while 1:
    print count
    count += 1
Run Code Online (Sandbox Code Playgroud)

我保存了这个文件并运行了它.

nohup python count.py >> test.log &

$tail -f test.log 
Run Code Online (Sandbox Code Playgroud)

我拖尾时什么都没有出现.

python linux ubuntu logging

0
推荐指数
1
解决办法
572
查看次数

记录Android应用程序事件

我想找到一个很好的第三方工具,用于记录我在远程服务器上的所有Android应用程序事件和视图.我只能访问应用程序的客户端而无法控制服务器端.

我想从我的应用中跟踪以下内容:

  1. 用户访问了哪个屏幕
  2. 他在屏幕上做了什么动作(带时间戳)
  3. 这些事件之间的某些特定应用关系.(该应用程序有一堆行动在一起构成一个有意义的事件)
  4. 用户信息等

我目前正在使用ACRA + Google文档(旧格式)来跟踪崩溃.但是不能再使用此设置创建任何新项目(不推荐使用谷歌文档支持).

还有什么是提交日志的好架构 - 在每个事件中,将它们组合在一起.

logging android acra

0
推荐指数
1
解决办法
306
查看次数

Tomcat maven插件 - 无法加载类"org.slf4j.impl.StaticLoggerBinder"

当我在一个独立的tomcat容器中启动我的webapp时,我看到Flyway日志记录正常(如果找到则使用commons-logging,如下面的Axel所述,则使用sout).

但是,当我使用apache tomcat maven插件(tomcat7-maven-plugin)时,我看到以下内容:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Run Code Online (Sandbox Code Playgroud)

没什么好看的.这是完整的代码:

public void contextInitialized(ServletContextEvent sce) {
    Flyway flyway = new Flyway();
    flyway.setDataSource(...);
    flyway.migrate();
}

<listener>
    <listener-class>com.blah.conf.FlywayListener</listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)

我正在使用logback-classic进行日志记录.泽西和吉斯都记录正常(虽然我删除它们以缩小问题范围).

这是我在类路径中看到的唯一与日志相关的jar:

logback-classic-1.0.13
logback-core-1.0.13
slf4j-api-1.7.5
Run Code Online (Sandbox Code Playgroud)

这是slf4j的依赖树:

mvn dependency:tree -Dverbose -Dincludes=org.slf4j
[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ hello ---
[INFO] com.hello:hello:war:1.0-SNAPSHOT
[INFO] \- ch.qos.logback:logback-classic:jar:1.0.13:compile
[INFO]    \- org.slf4j:slf4j-api:jar:1.7.5:compile
Run Code Online (Sandbox Code Playgroud)

所以我更新的问题是,为什么使用tomcat maven插件vs独立存在差异?我没有在"target"文件夹中看到临时部署的任何其他jar.

更新:添加jcl-over-slf4j后,问题就消失了.

java logging logback slf4j tomcat7

0
推荐指数
1
解决办法
4107
查看次数

Git日志,显示文件更改

如何以类似diff的方式为显示文件更改的文件执行git日志?

例如

git log Foo/Bar.config
Run Code Online (Sandbox Code Playgroud)

git logging

0
推荐指数
1
解决办法
671
查看次数

在Python中配置日志记录

我有一个关于如何配置我的python记录器的问题.您可以在下面看到我当前设置的记录器.(http://docs.python.org/2/howto/logging-cookbook.html)

logger = logging.getLogger("someName")
logger.setLevel(logging.DEBUG)
fh = logging.FileHandler("./log/log.out", "w")
fh.setLevel(logging.DEBUG)
ch = logging.StreamHandler(sys.stderr)
ch.setLevel(logging.ERROR)

frm = logging.Formatter('%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s','H:%M:%S')
fh.setFormatter(frm)
ch.setFormatter(frm)
logger.addHandler(fh)
logger.addHandler(ch)
Run Code Online (Sandbox Code Playgroud)

有没有办法以这样的方式配置记录器,它也会写下如下所示的错误消息:

print a
>>> NameError: global name 'a' is not defined
Run Code Online (Sandbox Code Playgroud)

非常感谢你的帮助.

python logging python-2.7

0
推荐指数
1
解决办法
278
查看次数

Laravel 4 - 记录事件监听器

我很新laravel 4,我想storage/logsuser尝试连接到我的应用程序时登录到文件内部.

我在里面补充说routes.php:

Event::listen('auth.attempt', function() {
    echo 'attempting to logging in';
});
Run Code Online (Sandbox Code Playgroud)

我知道这Laravel 4包括monolog哪个是PHP日志框架,但我不知道它是否是最简单的登录方式.

我可以声明一个filter我添加到before我的route,但这个解决方案不是很优雅.

php events logging laravel laravel-4

0
推荐指数
1
解决办法
1966
查看次数

python:打印每个线程的输出,分隔文件没有进程

我有几个线程,每个线程将输出写入stdout.但是,我想将每个线程的输出重定向到彼此独立的单独文件,然后合并它们以保持每个线程的流动.

我的意思是:

Thread1将每个打印,每个异常和每个其他输出写入file1.log,Thread2将每个打印,每个异常和每个其他输出写入file2.log,依此类推.所以我正在寻找的是为每个线程专门设置stdout.但是,设置stdout只能全局工作意味着Thread1和Tread2将始终写入相同的已定义的stdout.我还没有发现如何做到这一点.我不能使用流程,因为另一个问题.

我怎样才能做到这一点?

python logging multithreading

0
推荐指数
1
解决办法
1903
查看次数

在文件中显示最新的日志条目 - Linux

Linux中是否有命令只显示日志文件中的最新条目?理想情况下,每次读取文件后都会清除日志文件.

linux logging

0
推荐指数
1
解决办法
3306
查看次数

字符串太小,无法存储标准输出的进程

我指示进程的标准输出/错误并将其存储在我记录到文件的字符串中.

我注意到并非所有的标准输出都存储在文本文件中,所以我必须达到字符串的大小限制.

有谁知道有助于解决这个问题的替代方案?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace Logging
{
    class Logger
    {
        private FileStream file = null;
        private StreamWriter writer = null;

        public Logger(string _path)
        {
            if (!File.Exists(_path)) File.Create(_path).Dispose();

            file = new FileStream(_path, FileMode.Append, FileAccess.Write, FileShare.Write);
            writer = new StreamWriter(file);
        }

        public void Log(string _text)
        {
            Console.WriteLine(_text);
            using (file)
            {
                writer.WriteLine("[" + DateTime.Now + "] : " +  _text);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# string logging

0
推荐指数
1
解决办法
80
查看次数

标签 统计

logging ×10

python ×3

java ×2

linux ×2

slf4j ×2

acra ×1

android ×1

c# ×1

events ×1

git ×1

laravel ×1

laravel-4 ×1

logback ×1

multithreading ×1

php ×1

python-2.7 ×1

string ×1

tomcat7 ×1

ubuntu ×1