【问题标题】:Printing all the entities(domain) in log file打印日志文件中的所有实体(域)
【发布时间】:2014-04-08 18:06:04
【问题描述】:

我正在为我的 Web 应用程序使用 log4j2.xml,它运行良好。问题是,它也在打印所有域信息。我正在使用hibernate + spring。由于域包含用户类,它也在日志文件中打印密码.. 我的 log4j.xml 在下面..

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="trace">
    <appenders> 
            <RollingRandomAccessFile name="ONBOARDING_LOG" fileName="C:/jetty-distribution-9.0.6.v20130930/logs/onboarding.log" filePattern="C:/jetty-distribution-9.0.6.v20130930/logs/onboarding.log.%i" append="true" immediateFlush="true">
                    <PatternLayout>
                            <pattern>%d{ISO8601} %-5p [%t]: [%c{1}] %m%n-%X{ElapsedTime}-%X{ByteSize}-%X{uniqueID}-%X{HttpMethod}-%X{URL}-</pattern>
                    </PatternLayout>
                    <Policies>
                            <SizeBasedTriggeringPolicy size="250 MB"/>
                    </Policies>
                    <DefaultRolloverStrategy max="10"/>
            </RollingRandomAccessFile>
    </appenders>

   <loggers>

            <root level="DEBUG">
                    <appender-ref ref="ONBOARDING_LOG"/>
            </root>
    </loggers>

我的 session-factory.xml 是...

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName">
        <value>java:comp/env/jdbc/Onboarding</value>
    </property>
</bean>

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

    <property name="dataSource" ref="dataSource" />
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
        </props>
    </property>
    <property name="packagesToScan">
        <list>
            <value>biz.neustar.onboarding.domain</value>
        </list>
    </property>

</bean>

<bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>

日志文件中的消息是....

 [Printer] listing entities:
     ------2014-03-06 13:35:59,178 DEBUG [qtp19318917-21:http://0:0:0:0:0:0:0:1:8080/OnBoarding/index.do]:             [Printer] biz.neustar.onboarding.domain.User{lastName=TP, updatedDate=2014-02-28 20:12:02,   companyName=TurningPoint, password=admin, userOid=1, phoneNo=1.234567890, isLogged=Y, organizationStagingList=<uninitialized>, email=admin@tpgsi.com, userStatus=biz.neustar.onboarding.domain.UserStatus#1, userName=admin, firstName=Admin, createdDate=2007-05-06 00:00:00, userAccess=biz.neustar.onboarding.domain.UserAccess#1}
      ------2014-03-06 13:35:59,178 DEBUG [qtp19318917-21:http://0:0:0:0:0:0:0:1:8080/OnBoarding/index.do]: [Printer] biz.neustar.onboarding.domain.UserAccess{users=<uninitialized>, accessId=1, accessType=ADMINISTRATOR}
     ------2014-03-06 13:35:59,178 DEBUG [qtp19318917-21:http://0:0:0:0:0:0:0:1:8080/OnBoarding/index.do]: [Printer] biz.neustar.onboarding.domain.UserStatus{statusId=1, users=<uninitialized>, statusType=ACTIVE}

【问题讨论】:

    标签: xml hibernate spring-mvc jetty log4j2


    【解决方案1】:

    我认为您在第一部分中方括号 ([qtp19318917-21:http://0:0:0:0:0:0:0:1:8080/OnBoarding/index.do]) 中看到的是线程名称

    如果此值太长,您可以将布局模式中的[%t] 更改为[%.30t] 以指定最多30 个字符。 (http://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout)

    【讨论】:

      【解决方案2】:

      问题是休眠内部使用 log4j 来记录消息。我通过查看包含打印机的日志来了解这一点,它是在休眠中定义的最终类,因此我在 log4j.xml 中进行了一些更改。并且应该在根级别之前添加...我希望这对其他人非常有帮助,其他 cmets 将受到高度赞赏..谢谢

       <loggers>
          <logger name="org.hibernate.pretty">
                  <level value="OFF" />
          </logger>
      
          <logger name="org.hibernate.SQL">
              <level value="OFF"/>
          </logger>
      
          <logger name="org.hibernate">
              <level value="OFF"/>
          </logger>
      
          <logger name="org.hibernate.secure">
              <level value="OFF"/>
          </logger>
      
          <logger name="org.hibernate.hql.ast.AST">
              <level value="OFF"/>
          </logger>
      
          <logger name="org.hibernate.jdbc">
              <level value="OFF"/>
          </logger>
      
          <logger name="org.hibernate.transaction">
              <level value="OFF"/>
          </logger>
      
          <logger name="org.hibernate.tool.hbm2ddl">
              <level value="OFF"/>
          </logger>
      
          <logger name="org.hibernate.type">
                    <level value="OFF"/>
          </logger>       
      

      【讨论】:

        猜你喜欢
        • 2018-01-16
        • 1970-01-01
        • 2021-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多