GVKun编程网logo

我们可以使用log4j来创build基于级别的日志文件(使用log4j记录日志的步骤)

25

在这里,我们将给大家分享关于我们可以使用log4j来创build基于级别的日志文件的知识,让您更了解使用log4j记录日志的步骤的本质,同时也会涉及到如何更有效地ApacheLog4jAudit1.0

在这里,我们将给大家分享关于我们可以使用log4j来创build基于级别的日志文件的知识,让您更了解使用log4j记录日志的步骤的本质,同时也会涉及到如何更有效地Apache Log4j Audit 1.0.1 发布,基于 Log4j 的日志框架、DRUID怎么使用log4j把所有执行的sql记录到.log日志文件?求配置参考、java – 使用log4j在mule中自定义日志文件名、java – 使用log4j每天创建新的日志文件的内容。

本文目录一览:

我们可以使用log4j来创build基于级别的日志文件(使用log4j记录日志的步骤)

我们可以使用log4j来创build基于级别的日志文件(使用log4j记录日志的步骤)

我创build了一个应用程序,使用log4j将所有基于级别的日志存储在单个文件中,但在当前情况下,单个文件将保存所有级别的日志,如ALL,INFO,ERROR,FATAL,WARN,DEBUG等。 。因为在我的应用程序中,我有一个选项说一个select框,当我select错误,那么它应该只显示错误日志,如果我select信息,那么它应该只有INFO日志。

我正在parsing日志文件以获取基于特定级别的相应日志,但在这种情况下,如果日志文件非常大,则需要更多时间。

我想到的一个解决scheme是为每个级别维护单独的日志文件,以便我们可以避免分析

想知道大家对此的想法。 如果这是好的,我们如何重新定向基于级别的日志来分隔日志文件,如ERROR日志到appError.log,INFO日志到appInfo.log,以及一个通用的日志文件来保存所有基于级别的日志。

使用Multicast UDP的Cnetworkinglogging器?

为什么apache.commons.logging.Log不会loggingdebugging级别?

从实时(更新)日志文件使用Windows PowerShell筛选string

如何在Windows中旋转tomcat日志? 什么是最好的方法?

同时写入多个系统日志工具?

我的log4j.properties如下所示

# LOG4J configuration log4j.rootLogger=DEBUG,Appender1,Appender2 log4j.appender.Appender1=org.apache.log4j.ConsoleAppender log4j.appender.Appender1.layout=org.apache.log4j.PatternLayout log4j.appender.Appender1.layout.ConversionPattern=%d [%t] %-7p %10c{1} - %m%n log4j.appender.Appender2=org.apache.log4j.FileAppender log4j.appender.Appender2.File=${appRootPath}/WEB-INF/logs/LogDemos.log log4j.appender.Appender2.layout=org.apache.log4j.PatternLayout log4j.appender.Appender2.layout.ConversionPattern=%d [%t] %-7p %10c{1} - %m%n

parsing方法如下所示

Scanner scanner = new Scanner(new File(ctx.getRealPath("/")+"/WEB-INF/logs/LogDemos.log")); while(scanner.hasNext()) { String level = request.getParameter("level"); String logs = scanner.nextLine(); String regex = "(\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}:\d{2},\d{3}) \[(.*)\] ([^ ]*) +([^ ]*) - (.*)$"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(logs); if (m.matches() && m.groupCount() == 6) { String date = m.group(1); String time = m.group(2); String threadId = m.group(3); String priority = m.group(4); String category = m.group(5); String message = m.group(6); if(priority.trim().equalsIgnoreCase(level.trim())) { logsList.add(logs); System.out.println("date: " + date); System.out.println("time: " + time); System.out.println("threadId: " + threadId); System.out.println("priority: " + priority); System.out.println("category: " + category); System.out.println("message: " + message); } else { logsList.add(logs); } } } session.setAttribute("logs",logsList); scanner.close();

如何让Log4perl每天旋转我的日志?

黑匣子types的数据logging

在Windows应用程序中logging(跟踪)指南

系统日志在日志旋转后停止logging

当NTEventLogHandler引发exception时,如何使用Python 2.7写入Windows系统日志

如果你使用org.apache.log4j.varia.LevelRangeFilter ,你可以按如下操作(对于INFO和ERROR ):

# LOG4J configuration log4j.rootLogger=DEBUG,OnlyInfo,OnlyError # Only INFO log4j.appender.OnlyInfo=org.apache.log4j.FileAppender log4j.appender.OnlyInfo.File=${appRootPath}/WEB-INF/logs/info.log log4j.appender.OnlyInfo.File=logs/info.log log4j.appender.OnlyInfo.layout=org.apache.log4j.PatternLayout log4j.appender.OnlyInfo.layout.ConversionPattern=%d [%t] %-7p %10c{1} - %m%n log4j.appender.OnlyInfo.filter.A=org.apache.log4j.varia.LevelRangeFilter log4j.appender.OnlyInfo.filter.A.LevelMin=INFO log4j.appender.OnlyInfo.filter.A.LevelMax=INFO log4j.appender.OnlyInfo.filter.A.AcceptOnMatch=true # Only ERROR log4j.appender.OnlyError=org.apache.log4j.FileAppender log4j.appender.OnlyError.File=${appRootPath}/WEB-INF/logs/error.log log4j.appender.OnlyError.layout=org.apache.log4j.PatternLayout log4j.appender.OnlyError.layout.ConversionPattern=%d [%t] %-7p %10c{1} - %m%n log4j.appender.OnlyError.filter.A=org.apache.log4j.varia.LevelRangeFilter log4j.appender.OnlyError.filter.A.LevelMin=ERROR log4j.appender.OnlyError.filter.A.LevelMax=ERROR log4j.appender.OnlyError.filter.A.AcceptOnMatch=true

连接到Log4J的默认假设是,只要您关心某个级别的消息(例如INFO),那么您也会关心更重要的消息(例如ERROR)。 您可以在appenders上设置记录器和阈值级别,以过滤掉低于某个重要级别的消息,但是如果要将INFO消息发送(例如)INFO消息到特定的appender,而不是WARN,ERROR和FATAL,那么实现即通过应用一个过滤器 。

属性配置机制不支持过滤器,所以您将不得不切换到log4j.xml配置样式。 以下配置示例来自Log4J wiki :

<appender name="info-out"> <param name="File" value="info.log"/> <layout> <param name="ConversionPattern" value="%m%n"/> </layout> <filter> <param name="LevelToMatch" value="info" /> <param name="AcceptOnMatch" value="true"/> </filter> <filter/> </appender>

总结

以上是小编为你收集整理的我们可以使用log4j来创build基于级别的日志文件全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

Apache Log4j Audit 1.0.1 发布,基于 Log4j 的日志框架

Apache Log4j Audit 1.0.1 发布,基于 Log4j 的日志框架

Log4j Audit 1.0.1 发布

Log4j Audit 提供了一个日志框架,用于定义监听事件。然后使用 Log4j 记录它们。 该框架侧重于定义事件并为应用程序提供记录机制。Log4j Audit 通过定义自己的 AuditMessage 构建在 Log4j 上。

此版本的变化包括:

  • LOG4J2-2428:使用 AuditExceptionHandler 进行验证异常。

  • LOG4J2-2443:修复验证异常中的不一致性。

  • LOG4J2-2440:AuditEvents 应提供一些基本的 toString()

  • LOG4J2-2429:在 AuditEvent 上设置 exceptionHandler 将其设置为 一个 ThreadContext 变量。

  • LOG4J2-2421:将详细参数添加到 Log4j 审计Maven插件。

  • LOG4J2-2421:AbstractEventLogger.logEvent 不检查是否缺少必需的上下文属性。

  • LOG4J2-2417:更好地处理可选属性。

  • LOG4J2-2420:RequestContextFilter 日志记录清理。

  • LOG4J2-2442:规范化记录的事件名称 AbstractEventLogger.logEvent

  • LOG4J2-2431:缩小 getEvent 的返回类型。

Apache Log4j Audit 1.0.1运行在 Java 8 或更高版本。

下载链接 http://logging.apache.org/log4j-audit/latest/download.html 

DRUID怎么使用log4j把所有执行的sql记录到.log日志文件?求配置参考

DRUID怎么使用log4j把所有执行的sql记录到.log日志文件?求配置参考

需求说明:使用druid作为数据库连接池,拦截所有执行的SQL语句 

不是使用druid内置昂的监控servlet页面 (/druid/index.html,这个已实现,可以正常访问)  监控的servlet页面可以拦截并看到所有执行的sql 

而是利用log4j、配置log4j.properties在.log日志文件里记录。(我想不但可以通过上面的看到,而且可以自动记录到.log日志文件中)

问题: 根据官方文档,进行了配置,可是 官方文档最关键的地方 log4j.properties里怎么配置的druid 拦截没有任何示例,在这里卡住了。

我的配置如下:

1、XML配置 datasrource (可以正常工作)



<context:property-placeholder location="classpath:onelikeyouConfig.properties"/>
    <bean id="dataSource"init-method="init" destroy-method="close" >
        <!-- 配置监控统计拦截的filters -->
        <property name="filters" value="config,stat,log4j" />
        <!-- 基本属性 url、user、password -->
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
        <!-- 配置初始化大小、最小、最大 -->
        <property name="initialSize" value="1" />
        <property name="minIdle" value="1" />
        <property name="maxActive" value="20" />
        <!-- 配置获取连接等待超时的时间 -->
        <property name="maxWait" value="60000" />
        <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
        <property name="timeBetweenEvictionRunsMillis" value="60000" />
        <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
        <property name="minEvictableIdleTimeMillis" value="300000" />

        <property name="validationQuery" value="SELECT ''x''" />
        <property name="testWhileIdle" value="true" />
        <property name="testOnBorrow" value="false" />
        <property name="testOnReturn" value="false" />

        <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
        <!--如果用Oracle,则把poolPreparedStatements配置为true,mysql可以配置为false。-->
        <!--<property name="poolPreparedStatements" value="false" />-->
        <!--<property name="maxPoolPreparedStatementPerConnectionSize" value="20" />-->
        <!--config.file=classpath:onelikeyouConfig.properties 提示解密 properties文件中必须有config.decrypt=true-->
        <!--druid.stat.slowSqlMillis=5000 用来配置SQL慢的标准,执行时间超过slowSqlMillis的就是慢-->
        <property name="connectionProperties" value="config.file=classpath:onelikeyouConfig.properties;druid.stat.slowSqlMillis=5000" />
        <!--用来配置SQL慢的标准,执行时间超过slowSqlMillis的就是慢-->
    </bean>


2、log4j配置

log4j.rootLogger=INFO, normalOutput, errorOutPut

## 需要到第二天才会自动改名YYYY-MM-DD 之类的文件名 要调试 直接改系统日期 重启tomcat
## 写入数据库中的表LOG4J的Message字段中,内容%d(日期)%c:
## 日志信息所在地(类名)%p: 日志信息级别%m: 产生的日志具体信息 %n: 输出日志信息换行
log4j.appender.normalOutput=org.apache.log4j.DailyRollingFileAppender
log4j.appender.normalOutput.DatePattern=''_''yyyy-MM-dd''.log''
log4j.appender.normalOutput.File=${webapp.root}/WEB-INF/logs/${yyyy-MM-dd}onelikeyou_APP
log4j.appender.normalOutput.MaxFileSize=100k
log4j.appender.normalOutput.layout=org.apache.log4j.PatternLayout
log4j.appender.normalOutput.layout.ConversionPattern=[%-5p] [%t]:%d %c %L - %m%n

log4j.appender.errorOutPut=org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorOutPut.DatePattern=''_''yyyy-MM-dd''.log''
log4j.appender.errorOutPut.Threshold = druid.sql.Statement
log4j.appender.errorOutPut.File=${webapp.root}/WEB-INF/logs/onelikeyou_ERROR
log4j.appender.errorOutPut.MaxFileSize=100k
log4j.appender.errorOutPut.layout=org.apache.log4j.PatternLayout
log4j.appender.errorOutPut.layout.ConversionPattern=[%-5p] [%t]:%d %c %L - %m%n 
目前的日志配置是( 每天生成2个.log文件 可以正常工作)


                        一个总的生成.log文件(log.info/error..都会在这个里面),

                        一个log.error("错误信息输出") ..专门生成一个.log文件  (只显示error信息)


上面XML文件里已经加入了 stat过滤器,可以正常看到/druid/index.html 这里 servlet的监控页面,可以看到拦截的所有sql以及其他信息,

也加入了log4j过滤器  可是,

我也想把    在 /druid/index.html 这里 servlet的监控页面看到拦截的所有sql        自动记录到.log文件中去,

该如何配置druid呢?或者说log4j.properties里该添加或修改些什么?

配置过很多遍了,没一次成功的。。

有配置成功过的帮帮忙吧,多谢了!

              

java – 使用log4j在mule中自定义日志文件名

java – 使用log4j在mule中自定义日志文件名

我正在尝试通过修改log4j.xml以使用适当的appender来更改mule生成的日志文件名.

这是log4j.xml的一个片段

<RollingFile name="Rolling-Async-Perf" fileName="/usr/local/mule/logs/${app_name}.log"
            filePattern="./logs/${date:yyyy-MM}/perf-%d{yyyy-MM-dd}-%i.log.gz"  immediateFlush="false">

以下是我在加载与log4j.xml相关的属性的类中设置application_name的值的方法

System.setProperty("app_name","AppName");

但是,生成的文件名为${app_name} .log而不是AppName.log.

有关如何根据mule中的自定义属性获取mule来获取文件名称的任何想法?

解决方法

有两种选择:

1)在MULE_HOME / conf / wrapper.conf文件中添加一个属性,例如:

wrapper.java.additional.15=-Dapp_name=AppName

或2)在log4j2.xml文件example here的Configuration元素内:

<Properties>
  <Property name="app_name">AppName</Property>
</Properties>

java – 使用log4j每天创建新的日志文件

java – 使用log4j每天创建新的日志文件

我想在我的 java项目中使用Log4j,我应该提供哪种配置
配置文件,每天晚上12点新文件将生成和文件
name应该 – 输出-log-of-MyProjectName-HostName-2013-Dec-10.txt
名称).我的配置文件是这样的 –
log4j.appender.FILE = org.apache.log4j.DailyRollingFileAppender    
log4j.appender.FILE.File = ${log}/log.out    
log4j.appender.FILE.DatePattern = '.' yyyy-MM-dd-a

它每天都在创建新文件,但它会在文件名后附加日期.
请帮我.提前致谢.

解决方法

我想你想要DailyRollingFileAppender(geedubb链接到关于它的log4j文档)
Here is example

Here is another stackoverflow question like yours

关于我们可以使用log4j来创build基于级别的日志文件使用log4j记录日志的步骤的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Apache Log4j Audit 1.0.1 发布,基于 Log4j 的日志框架、DRUID怎么使用log4j把所有执行的sql记录到.log日志文件?求配置参考、java – 使用log4j在mule中自定义日志文件名、java – 使用log4j每天创建新的日志文件等相关内容,可以在本站寻找。

本文标签: