Tag: log4j

在logging.properties中自定义日志格式

我在Tomcat 7中配置日志格式需要一些指导。我在日志记录配置方面比较新,所以请原谅幽默这个问题,如果它看起来有点基础…… 使用logging.properties中配置的Tomcat中的标准日志记录显示以下格式的日志: Jun 6, 2011 9:27:00 AM com.class.Control_WS callWebService INFO: Response received from Control_WS:[Y] 我想自定义这些日志以压缩到一行,并将日期格式扩展到包括毫秒。 例: [2011-05-04T11:37:00.037|INFO|javax.enterprise.system.stream.out|Response recieved from Control_WS:[Y]] 这是我可以使用JUL做的事情还是我需要切换到LOG4J? 任何可以提供的简单示例或方向都将非常受欢迎。

仅指定一些包以具有调试输出

我想记录我的Web应用程序的一些行为,它也实现了hibernate,spring等。 当我尝试从apache实现log4j logger时,我遇到了一些麻烦。 当我打开记录器时,它也在调试hibernate和spring,这是我不想要的。 我尝试配置属性文件以指定我的项目的包但它不起作用。 这是我的属性文件代码: log4j.rootCategory=ERROR, O log4j.category.com.my.package= DEBUG, FILE, O log4j.appender.FILE=org.apache.log4j.RollingFileAppender log4j.appender.FILE.File=log/logger.log log4j.appender.O=org.apache.log4j.ConsoleAppender …. and some layout 当我切换rootCategory = DEBUG但它正在调试hibernate和spring时,它可以工作。

有没有一种简单的方法为每个类创建一个记录器实例?

我现在使用静态方法来记录(因为我发现登录Android非常容易),但现在我需要为不同的类配置不同的appender,所以我遇到了静态日志记录方法的问题。 我读了Log4J:创建Logger实例的策略 ,我注意到我现在是时候更改日志记录策略了,所以我需要以下代码到我的类,需要一个特殊的记录器。 private static final Logger logger = Logger.getLogger(XXXX.class); 我觉得既然这是重复的工作,那么我们有什么方法可以避免向每个类添加重复的代码,或者只是编写更少的代码。 AOP或dependency injection可以做这样的工作吗? 我正在使用log4j和Spring,但是其他任何方法都将受到高度赞赏。

如何在log4j RollingFileAppender中从Java中启动的Shell脚本输出日志?

我在Tomcat上运行Java Web应用程序,在运行时执行Shell脚本,其中执行许多“echo”命令。 我的问题是我希望我的所有日​​志都出现在log4j RollingFileAppender中,即: Java Log4j日志(很容易做到) Shell echo命令日志(这对我来说是棘手的部分) Shell脚本通过java.lang.Process类运行。 到目前为止,由于log4j提供的StreamUtils.copy()方法,我已设法将进程的inputStream和errorStream输出到System.out。 但是这样可以获得一些ConsoleAppender输出,但不是RollingFileAppender输出。 有没有方便的方法将Process流重定向到RollingFileAppender? 在Log4j配置中还是从Java代码? 这是我的LOG4J appender conf: 这是我的启动脚本代码: ProcessBuilder pb = new ProcessBuilder(“sh”, “script.sh”); Process p = pb.start(); StreamUtils.copy(p.getInputStream(), System.out); StreamUtils.copy(p.getErrorStream(), System.out); int result = p.waitFor(); LOG.info(“Script ended with result ” + result); return (result == 0);

SLF4J是否可以在multithreading应用程序中用于记录到数据库?

我正在研究multithreading应用程序。 我已经在使用Log4j将语句记录到文件中。 我最近一直在研究登录Mysql数据库的可能性。 记录组件必须在重负载下可靠并且必须是线程安全的。 我听说过SFL4J。 我对SLF4J的理解是它只是一个外观或抽象层。 我想知道SLF4J是否是一个用于multithreading应用程序的良好数据库日志记录解决方案? 在负载很重的情况下,添加一个层(如缓冲区或队列)并让线程记录到它而不是直接调用日志记录线程是一个好主意(日志记录线程会发送发现的语句在队列中逐个到数据库)? 任何提示,最佳实践或代码示例将非常感激, 问候,

传统的开源Java应用程序

我已经将Java用于我的“家庭项目”一段时间了,现在需要通过github或Google Code这样的存储库来提供我的一些项目。 只要我是该项目的唯一开发人员,并且只要我一直在Eclipse中工作,那么完全没有关于构建和运行它的问题。 一切都很好。 问题基本上是,如果有人要我分享,我该怎么办? 🙂 首先要做的是,使用Maven等工具构建项目。 在这种情况下,无论是否安装了Eclipse,或者更喜欢IDEA,他都可以下载我的项目并使用Maven构建。 或者,导入Eclipse / IDEA并构建。 所以,澄清这个问题,这里有两点: 我的目录结构应该是什么样的? 文件夹,如src,bin,还有其他什么? 我的应用程序应该运行的方式是什么? 例如,我的应用程序需要log4j才能运行。 在构建软件包时,Maven解决了这种依赖关系。 但是当构建包时,你应该手动提供log4j的路径(使用java -cp … ) – 如果我只想提供.sh和.cmd脚本以方便用户,那么消除这个要求的方法是什么? ?

无法在java项目中加载类“org.slf4j.impl.StaticLoggerBinder”错误?

我Failed to load class “org.slf4j.impl.StaticLoggerBinder”错误。我想将记录器写入文件。所以我使用log4j.jar并使用apache tomcat服务器。 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.

从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做同样的事情

如何解决此Log4J导入错误(与Classpath相关)?

当我运行以下简单的log4J示例时,我收到一个错误: import org.apache.logging.log4j.core.*; import java.io.*; import java.sql.SQLException; import java.util.*; public class log4jExample{ /* Get actual class name to be printed on */ static Logger log = Logger.getLogger( log4jExample.class.getName()); public static void main(String[] args) throws IOException,SQLException{ log.debug(“Hello this is an debug message”); log.info(“Hello this is an info message”); } } 并且错误如下: Error: package org.apache.logging.log4j.core does not […]

通过DI在Spring Framework中正确使用LOG4J

我试图使用Log4j作为Spring Framework的一部分,据我所知,通过使用适当的bean,系统应该映射代码中可访问的单例实例,同时将日志记录深度自动映射到类 类似于Log4J的正常使用 Logger log = Logger.getLogger(getClass()); 我一直在使用以下Spring bean定义 conf\log4j.xml 但我无法将此bean映射到给定类中的特定成员,也无法通过@autowired使用它 如果有更好的方法来集成Log4j和Spring,请告诉我 最好的祝福 标记