我目前在log4j中有以下模式布局.我想将Process id添加到日志文件中.我该怎么做?
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
粘贴样本日志消息
2011-01-07 11:48:21,940 [main] INFO  Testing1
2011-01-07 11:48:21,942 [main] INFO  Test.common.ApplicationProperties - Used log4j 
"log4j.properties" [Read only] 26 lines, 884 characters
log4j.rootCategory=DEBUG, stdout, A1
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold=WARN
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss}  %-5p  (%c) %m%n
log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.Threshold=DEBUG
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.A1.File=/homw/cus/logs/ccl.02.log
log4j.appender.A1.MaxFileSize=5MB
log4j.appender.A1.MaxBackupIndex=40
log4j.category.test.common.DBConnectionPool=WARN
log4j.category.test.common.DataBaseHandler=WARN
log4j.category.test.cttg.tables=WARN
log4j.category.test.middleware.tables=WARN
log4j.logger.org.apache.axis=ERROR
log4j.logger.org.apache.catalina=ERROR
在log4j PatternLayout(log4j patternLayout)中使用时,我无法确定使用这两个log4j转换字符之间的确切区别
有人可以举个例子,说明这两个会有所不同吗?
类别是否始终与班级名称匹配?
问候,
我很难找到各种"盒子里"模式的文档
%logger  
%level  
%timestamp  
当然有示例页面,但我不确定这是完整的选项列表.
我也知道MDC参数可以从应用程序输出到记录器,但这涉及代码更改,这是一个与配置更改不同的野兽.
有%machineName选项还是machineIP选项?问题是我们将Web场中的所有服务器都登录到同一个数据库日志中,我们现在认为来自一台计算机的消息数量不成比例.
在log4j 2中,当大小超过指定的阈值时,我想修剪写入控制台appender的消息的结尾.
我查看了http://logging.apache.org/log4j/2.0/manual/layouts.html#PatternLayout文档但看不到截断"msg"字段结尾的选项.
"%.1000msg"将仅留下消息的最后 1000个字符.
这对我不利,因为在Java中,堆栈跟踪中的大多数内部帧都打印在消息的开头.
任何的想法?
我有以下PatternLayout:
public class EscapedEnhancedPatternLayout extends EnhancedPatternLayout {
    @Override
    public String format(LoggingEvent event) {
        return StringEscapeUtils.escapeJava(super.format(event));
    }
}
但这会逃脱完整的日志行.
我希望有这样的东西,但仅限于消息.
但是LoggingEvent班级没有setMessage和setRenderedMessage方法.
而且我没有看到复制构造函数LoggingEvent.如果LoggingEvent有复制构造函数我可以继承LoggingEvent并覆盖下面提到的方法.
请告诉我如何解决我的问题.
我正在使用 log4j2 并具有以下依赖项::
   <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.0-rc1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.0-rc1</version>
    </dependency>
我正在使用以下配置::
    <?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Properties>
        <Property name="LOGGER_HOME">/logs</Property>
    </Properties>
    <Appenders>
        <RollingFile name="application" fileName="${LOGGER_HOME}/application.log"
            filePattern="${LOGGER_HOME}/application.%d{yyyy-MM-dd}_%i.log">
            <PatternLayout pattern="%d{ISO8601}{GMT} %-5p %C{2} (%F:%L) - %m%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="1 GB" />
            </Policies>
        </RollingFile>
        <RollingFile name="framework" fileName="${LOGGER_HOME}/em-logs/framework.log"
            filePattern="${LOGGER_HOME}/framework.%d{yyyy-MM-dd}_%i.log">
            <PatternLayout pattern="%d{ISO8601}{GMT} %-5p %C{2} (%F:%L) - %m%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="1 GB" />
            </Policies>
        </RollingFile>
        <Console name="out" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{ISO8601}{GMT} %-5p %C{2} (%F:%L) - %m%n" />
        </Console>
        <Async name="asyncApplication"> …logging rollingfileappender line-numbers pattern-layout log4j2
我正在使用Logback进行日志记录.在第一行之后的每一行的开头是一个空格.知道为什么吗?
下面是我的logback.xml:
<?xml version="1.0" encoding="utf-8"?>
<configuration debug="true">
  <property name="log.pattern" value="%d{yyyy/MM/dd HH:mm:ss.SSS} %-5level [%logger{0}] %msg%n %ex"/>
  <property name="log.file.prefix" value="${app.home}/var/log/${app.name}"/>
  <appender name="DEFAULT" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${log.file.prefix}.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${log.file.prefix}.%d{yyyyMMdd}.%i.log.zip</fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>500MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
    <encoder>
          <Pattern>${log.pattern}</Pattern>
    </encoder>
  </appender>
  <!-- info for everything else -->
  <root level="info">
    <appender-ref ref="DEFAULT"/>
  </root>
</configuration>
这导致日志输出如下(注意第一行没有空格):
2012/02/06 13:34:09.875 INFO  [BrokerService] Using Persistence Adapter: MemoryPersistenceAdapter
 2012/02/06 13:34:09.875 INFO  [BrokerService] ActiveMQ 5.3.1 JMS Message Broker (localhost) is starting
 2012/02/06 13:34:09.875 INFO  [BrokerService] For help or more information please see: http://activemq.apache.org/
 2012/02/06 …