Tag: logback

新项目使用log4j而不是Logback的任何原因?

我知道常见的意思是Logback> log4j。 仍然,有什么log4j比Logback更好吗? 有什么理由使用log4j而不是logback? 事实上它只有60个关于堆栈溢出的问题,所以我假设一个小得多的用户群?

使用LogBack登录数据库

使用log4j,我曾经有一个直接记录到我的数据库中的一个表的appender。 appender如下: log4j是部署在JBoss 4.2上的Web应用程序的一部分。 log4j的问题在于它没有关闭它打开的数据库连接,甚至当我们在Web服务器上尝试Postgres数据源时,它正在耗尽池中的所有连接(这是一个完全不同的问题)。 这就是为什么我们决定尝试LogBack,看看它是否更好。 有趣的是,当我阅读LogBack文档时,它清楚地提到了以下内容: DBAppender以独立于Java编程语言的格式将日志记录事件插入到三个数据库表中。 这三个表是logging_event,logging_event_property和logging_event_exception。 它们必须存在才能使用DBAppender。 据我所知,这意味着我已经绑定了这3个表来登录数据库。 在互联网上搜索解决方案产生的结果很少涉及扩展AppenderBase类,这对我来说在这个阶段是不方便的,因为这意味着必须进行更多的测试,因为我们知道我们有很多其他要求进行测试。 问题是:我可以为LogBack定义一个与我上面的log4j appenderfunction类似的appender吗? 非常感谢您的帮助。

如何在启动SLF4J之前运行一个类 – Logback?

正如标题所说,我想运行一个类,它将在启动logback之前检查目录中是否存在属性。 所以我试过的是我在spring的监听器之前放置一个将在启动时启动的监听器,并且我确保在该监听器中没有使用Logger。 但是Logger仍然设法在听众面前解雇。 这是我的web.xml: SekaiServer listener.InitLog listener.InitConfig listener.InitListener contextConfigLocation classpath:spring/application-config.xml /WEB-INF/security-context.xml org.springframework.web.context.ContextLoaderListener dispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/mvc-config.xml 1 dispatcherServlet / springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy springSecurityFilterChain /*

使用logback日志记录配置glassfish嵌入式服务器

有没有办法配置Glassfish嵌入式服务器进行第三方日志框架测试 – 特别是Logback(或)LOG4j。 注意:Glassfish嵌入式服务器用于对EJB Bean进行unit testing。

Java桌面应用程序中日志文件位置的最佳实践是什么?

我有一个Java Webstart应用程序,我希望我的日志输出转到一个文件。 该应用程序必须适用于Mac OS X和Windows(并且在Linux和一般的Unix上工作会很好)。 我正在使用Logback。 我应该在哪里放置我的日志文件? 是否有标准代码来获取适合日志的文件位置,并为每个平台调整适当的位置?

如何使用Grizzly / Jersey获取客户端地址以进行日志记录?

我正在使用Grizzly来提供Jersey应用程序,同时使用Logback来满足我的日志记录需求。 请注意,这里没有涉及Servlet ,我使用一段代码“手动”启动所有内容,如下所示: final URI uri = /* this is a configuration option */ this.server = new HttpServer(); final NetworkListener nl = new NetworkListener( “grizzly”, uri.getHost(), uri.getPort()); server.addListener(nl); final GuiceComponentProviderFactory gcpf = new GuiceComponentProviderFactory(rc, inj); final HttpHandler processor = ContainerFactory.createContainer( HttpHandler.class, rc, gcpf); this.server.getServerConfiguration().addHttpHandler( processor, uri.getPath()); server.start(); 现在我想使用Logback的MDCfunction使客户端的套接字地址在日志记录中可见。 为此,我需要一些地方来连接一个HTTP处理的监听器,它会收到有关传入请求的通知(我可以将地址放入MDC)以及请求完成时(因此我可以清理MDC)。 我遵循的一种方法是使用Jersey连接Container*Filter实例,如下所示: class MdcFilter implements ContainerRequestFilter, ContainerResponseFilter […]

Logback SMTPAppender不发送电子邮件

我试图使用Logback登录我的java应用程序。 我相信我已正确配置它,但是当记录错误时 ch.qos.logback.classic.net.SMTPAppender中的信息[EMAIL] – 即将发送SMTP消息“Testing Main”发送到[XXXX@optonline.net] 打印到控制台,之后没有打印任何其他内容,并且永远不会收到电子邮件。 如果我在配置中输入了无效的smtp主机或用户名/密码,则在尝试发送时会立即失败,因此它正在建立连接。 我的POM: Java.Net http://download.java.net/maven/2/ javax.activation activation 1.1.1 javax.mail mail 1.4.7 ch.qos.logback logback-core 1.1.1 ch.qos.logback logback-classic 1.1.1 org.slf4j slf4j-api 1.7.6 org.slf4j jcl-over-slf4j 1.7.6 logback.xml mail.optonline.net xxxxx xxxxxx 587 xxxxx@optonline.net xxxxx@optonline.net Testing %logger {20} – %m %d {HH:mm:ss.SSS} [%thread] %-5level %logger {1} -%msg%n 控制台 10:45:44,596 |-INFO in ch.qos.logback.classic.LoggerContext[default] – Could […]

从log4j切换到logback

我有这个代码与log4j,我不使用任何种类的配置文件 static Logger logger = Logger.getLogger(Application.class); … Appender ap = new NTEventLogAppender(); SimpleLayout layout = new SimpleLayout(); Appender fp = null; try { fp = new FileAppender(layout, “output.txt”); } catch (IOException e) { e.printStackTrace(); } logger.addAppender(ap); logger.addAppender(fp); logger.info(“info”); 任何人都可以告诉我如何使用logback做同样的事情

Spring Boot忽略logback-spring.xml

我有2个使用Logback的Spring Boot(1.4.1-RELEASE)控制台应用程序。 两个配置文件或多或少相同,位于my / src / main / resources文件夹中,名为logback-spring.xml 。 这两个项目都在其pom.xml中包含maven依赖spring-boot-starter-logging并获取logback Version 1.1.7。 两个poms中定义的Spring Boot配置: 4.0.0 org.springframework.boot spring-boot-starter-parent 1.4.1.RELEASE dmvapp-a my-app-a 1.0.16-SNAPSHOT jar org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-actuator org.springframework.boot spring-boot-starter-security org.springframework.boot spring-boot-starter-logging 但是,在运行应用程序时,其中一个似乎完全忽略了logback配置,而另一个则像预期的那样选择了它。 如果我为无法正常工作的应用程序将文件名更改为logback.xml ,它突然正常工作(即使使用我正在使用的弹簧配置文件)。 所涉及的任何配置(意味着pom.xml,application.properties等)没有明显差异。 有人知道为什么会这样吗? 我发现这种行为相当令人困惑。

如何在运行时更改特定用户/线程的日志级别

我正在使用slf4j与log4j 2.0或logback作为实现。 例如,我的s​​ervlet有一个级别为ERROR的记录器,我的服务器产生了servlet的100个线程。 我将在运行时获得一个特殊用户列表。 当我检测到一些连接的特殊用户时。我想将这些特殊用户/线程的日志级别更改为DEBUG,并使其他线程的日志级别不受影响(仍然是ERROR)。 我知道logback中的TurboFilter和log4j 2.0中的DynamicThresholdFilter,但由于我只会在运行时获取特殊用户列表,所以我无法使用它们。 这是我的申请: package com.example.logging; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServlet; import org.slf4j.*; public class App extends HttpServlet { private final Logger Logger = LoggerFactory.getLogger(App.class); Map map = new HashMap(); public App() { map.put(“user1”, “DEBUG”); map.put(“user2”, “DEBUG”); map.put(“user3”, “ERROR”); } public void writeToLogFile(String userName) { if (map.containsKey(userName)) { // do […]