繁体   English   中英

日志记录框架和logback.xml

[英]logging frameworks and logback.xml

在使用Java和com.alvazan.orm.api库创建示例时,禁止使用“ System.out.println”。

学习的第一个也是最简单的Java练习之一是“ Hello World”,也使用“ System.out.println”(...也称为日志记录,或者在控制台中找到了返回的请求数据?)使用Eclipse时,日志记录通过修改logback.xml文件(ctrl-shift-R并键入logback.xml)将其关闭

从那里;
<logger name="com.alvazan.orm" level="WARN"/>
是要添加到logback.xml文件的行,以便仅显示启动日志。

此外,还有两个日志,例如...。
2012-09-14 22:05:08,067 com.alvazan.test.FactorySingleton createFactory
INFO: CREATING FACTORY FOR TESTS
2012-09-14 22:05:08,809 com.impetus.annovention.ClasspathDiscoverer processFile
INFO: adding folder to scan=file:/C:/AAROOT/workareas/area1/playorm/eclipsegen/
被使用。

  • 只是澄清所有信息都输入到logback.xml文件中?
  • 是否有其他文件要使用(logback.xml除外)?
  • 还是最终用户使用,例如“ com.alvazan.test.FactorySingleton createFactory”; 和“ com.impetus.annovention.ClasspathDiscoverer processFile”?
  • 最后确定这个问题,是否需要前面的文件路径?

谢谢你的时间,
瑞安


为了回应布雷特以及其他信息/问题,

您的根记录器如何配置? 您仅为com.alvazan.orm设置WARN,因此,如果您的根记录器是INFO,则将记录com.alvazan.test INFO。

嘿布雷特,感谢您的回复...

对于根记录器配置,我相信该值设置为“ INFO”。
logback.xml
话虽如此,我想将“ INFO”设置为“ WARN”,以防止使用“ System.out.println”
同样在上一个问题中,我提到:

2012-09-14 22:05:08,067 com.alvazan.test.FactorySingleton createFactory
INFO:创建测试工厂
2012-09-14 22:05:08,809 com.impetus.annovention.ClasspathDiscoverer processFile
INFO:将文件夹添加到scan = file:/ C:/ AAROOT / workareas / area1 / playorm / eclipsegen /

com.alvazan.test.FactorySingleton和com.impetus.annovention.ClasspathDiscoverer(同一库中的不同程序包)

在同一个库中找到不同的位置...
图书馆

我是否需要对其他文件或* package进行登录过程,或者在同一库中执行一次,是否就足够了? 还是我要调整其他值?

您的根记录器如何配置? 您仅为com.alvazan.orm设置WARN,因此,如果您的根记录器是INFO,则将记录com.alvazan.test INFO。

  1. 您的第一个声明。

“在使用Java和com.alvazan.orm.api库创建示例时,禁止使用“ System.out.println”。”

通常,没有人在System.out.println中使用。 Hibernate没有,JBoss没有,tomcat没有。 它们都使用日志记录框架,因此您可以配置生产中的每个日志,并且每个使用tomcat或jboss或hibernate的公司都可以对其进行不同的配置。 如果这些程序使用System.out.println,则客户将无法控制,并且您的服务器将始终运行缓慢,因为您从不希望“所有”日志记录,并且无法关闭System.out.println! 他们总是在。 log.info可以关闭和打开。

有关配置回发的最完整答案,请参见其文档。

http://logback.qos.ch/manual/configuration.html

只是澄清所有信息都输入到logback.xml文件中?

我不确定这个问题是什么意思。 logback.xml是名为logback的日志记录库的配置,您可以在上面的链接中找到它。

Is there a diffrent file to use(other than logback.xml)?

logback还有其他选项,例如用于配置它的groovy文件,但是playOrm仅使用logback.xml,尽管任何客户端都可以决定他们使用的配置文件,因为playOrm会丢弃交付到其他项目时签入的logback.xml文件。

Or is the end-user to use, for instance, "com.alvazan.test.FactorySingleton createFactory"; 
and "com.impetus.annovention.ClasspathDiscoverer processFile"?

这个问题让我很困惑。 最终用户不应使用FactorySingleton(既不直接也不间接使用,并且该类甚至不在jar中,因为它在测试包中)。 最终用户将仅间接使用ClasspathDiscoverer ...实际上,最终用户甚至都不知道这些类。

Finalizing this question, is the file path for the preceeding necessary?

您是否要询问logback.xml中的文件路径是否必要? 如果您想进一步了解回发的工作原理,则需要阅读大量文档。 基本上,您可以执行com.alvazan level = WARN之类的操作来打开com.alvazan中的任何类。 * *警告级别(这是递归的,适用于子代,孙代等)。 始终在logback.xml中也定义ROOT记录器,并且它是所有包中所有类的级别,除非被覆盖。

是的,playorm中的根记录器设置为警告。

在您显示的图片的底部(您的图片被切除,因此不在该图片中),有一个“源”选项卡,您可能要单击该选项卡才能更好地查看xml,它将更好地与logback的文档相匹配好。 这是我打赌您正在查看的文件的链接。

https://github.com/deanhiller/playorm/blob/486079cfefbd2b4b79e99652b24c146572663dda/input/javasrc/logback.xml

root logger明确设置为info,并且可以根据需要设置为警告。

所以你想要什么。 您是否希望这两个日志语句消失并关闭? 是否要关闭WARN以外的所有日志语句?

如果要在所有软件库中关闭所有功能,只需将根记录器更改为“ WARN”。 如果您只想关闭FactorySingleton,则可以添加此行

<logger name="com.alvazan.test.FactorySingleton" level=""WARN"/>

如果您要关闭所有com.alvazan日志记录而不是仅关闭com.alvazan.orm中的所有内容,同时也要关闭com.alvazan.test,但是您希望所有其他库仍处于打开状态(但始终希望WARN处于打开状态)这通常是您想要的),那么您可以更改此设置

<logger name="com.alvazan.orm" level=""WARN"/>

改为以下

<logger name="com.alvazan" level=""WARN"/>

最好的理解logback的方法是阅读logback文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM