تكوين السبات تسجيل الدخول باستخدام Log4j التكوين XML الملف ؟

StackOverflow https://stackoverflow.com/questions/436276

سؤال

لم أكن قادرة على العثور على أي وثائق حول كيفية تكوين السبات هو تسجيل الدخول باستخدام XML على غرار ملف تكوين Log4j.

هل هذا ممكن أو لا بد استخدام خصائص أسلوب تكوين ملف التحكم السبات تسجيل?

إذا كان أي شخص لديه أي معلومات أو روابط إلى الوثائق سيكون موضع تقدير.

تحرير:
فقط للتوضيح أنا أبحث عن مثال الفعلية XML جملة للسيطرة السبات.

EDIT2:
هنا هو ما لدي في ملف التكوين XML.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <param name="Threshold" value="info"/>
        <param name="Target" value="System.out"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ABSOLUTE} [%t] %-5p %c{1} - %m%n"/>
        </layout>
    </appender>
    <appender name="rolling-file" class="org.apache.log4j.RollingFileAppender">
        <param name="file" value="Program-Name.log"/>
        <param name="MaxFileSize" value="1000KB"/>
    <!-- Keep one backup file -->
        <param name="MaxBackupIndex" value="4"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %l - %m%n"/>
        </layout>
    </appender>

    <root>
        <priority value ="debug" />
        <appender-ref ref="console" />
        <appender-ref ref="rolling-file" />
    </root>
</log4j:configuration>

تسجيل يعمل بشكل جيد ولكن أنا أبحث عن وسيلة إلى التنحي والتحكم في السبات قطع الأشجار بطريقة منفصلة من مستوى التطبيق تسجيل كما هو عليه حاليا الفيضانات سجلات بلدي.لقد وجدت أمثلة على استخدام ملف التفضيل أفعل هذا, أنا فقط أتساءل كيف يمكن أن تفعل هذا في ملف XML.

هل كانت مفيدة؟

المحلول

من http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html#configuration-logging

وهنا قائمة مسجل فئات:

Category                    Function

org.hibernate.SQL           Log all SQL DML statements as they are executed
org.hibernate.type          Log all JDBC parameters
org.hibernate.tool.hbm2ddl  Log all SQL DDL statements as they are executed
org.hibernate.pretty        Log the state of all entities (max 20 entities) associated with the session at flush time
org.hibernate.cache         Log all second-level cache activity
org.hibernate.transaction   Log transaction related activity
org.hibernate.jdbc          Log all JDBC resource acquisition
org.hibernate.hql.ast.AST   Log HQL and SQL ASTs during query parsing
org.hibernate.secure        Log all JAAS authorization requests
org.hibernate               Log everything (a lot of information, but very useful for troubleshooting) 

تنسيق للصق في log4j ملف التكوين XML:

<!-- Log all SQL DML statements as they are executed -->
<Logger name="org.hibernate.SQL" level="debug" />
<!-- Log all JDBC parameters -->
<Logger name="org.hibernate.type" level="debug" />
<!-- Log all SQL DDL statements as they are executed -->
<Logger name="org.hibernate.tool.hbm2ddl" level="debug" />
<!-- Log the state of all entities (max 20 entities) associated with the session at flush time -->
<Logger name="org.hibernate.pretty" level="debug" />
<!-- Log all second-level cache activity -->
<Logger name="org.hibernate.cache" level="debug" />
<!-- Log transaction related activity -->
<Logger name="org.hibernate.transaction" level="debug" />
<!-- Log all JDBC resource acquisition -->
<Logger name="org.hibernate.jdbc" level="debug" />
<!-- Log HQL and SQL ASTs during query parsing -->
<Logger name="org.hibernate.hql.ast.AST" level="debug" />
<!-- Log all JAAS authorization requests -->
<Logger name="org.hibernate.secure" level="debug" />
<!-- Log everything (a lot of information, but very useful for troubleshooting) -->
<Logger name="org.hibernate" level="debug" />

ملحوظة::معظم قطع الاشجار استخدام مستوى التصحيح ، ومع ذلك org.السبات.نوع يستخدم أثر.في الإصدارات السابقة من السبات org.السبات.نوع تستخدم أيضا التصحيح ، ولكن اعتبارا من السبات 3 يجب تعيين مستوى تتبع (أو كل) من أجل أن نرى JDBC المعلمة ملزمة تسجيل.

و الفئة المحددة على هذا النحو:

<logger name="org.hibernate">
    <level value="ALL" />
    <appender-ref ref="FILE"/>
</logger>

يجب أن توضع من قبل العنصر الجذر.

نصائح أخرى

لوكي's الجواب يشير إلى السبات 3 مستندات و يوفر معلومات جيدة ولكن كنت لا تزال لا تحصل على النتائج التي كنت أتوقع.

الكثير من سحق ، يلوحون بالأسلحة العامة فأر ميت يدير هبطت أخيرا لي الجبن.

لأن السبات 3 يستخدم بسيطة تسجيل واجهة جافا (SLF4J) (في docs) ، إذا كنت تعتمد على Log4j 1.2 سوف أيضا تحتاج slf4j-log4j12-1.5.10.jar إذا كنت ترغب في تماما تكوين السبات تسجيل مع log4j ملف التكوين.آمل أن يساعد هذا الرجل القادم.

ردا على homaxto تعليق, هذا ما لدي الآن.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <param name="Threshold" value="debug"/>
        <param name="Target" value="System.out"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ABSOLUTE} [%t] %-5p %c{1} - %m%n"/>
        </layout>
    </appender>
    <appender name="rolling-file" class="org.apache.log4j.RollingFileAppender">
        <param name="file" value="Program-Name.log"/>
        <param name="MaxFileSize" value="500KB"/>
        <param name="MaxBackupIndex" value="4"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %l - %m%n"/>
        </layout>
    </appender>

    <logger name="org.hibernate">
        <level value="info" />
    </logger>

    <root>
        <priority value ="debug" />
        <appender-ref ref="console" />
        <appender-ref ref="rolling-file" />
    </root>
</log4j:configuration>

جزء أساسي يجري

<logger name="org.hibernate">
    <level value="info" />
</logger>

ويساعد هذا الأمل.

هنا هو ما يمكنني استخدام:

<logger name="org.hibernate">
    <level value="warn"/>
</logger>

<logger name="org.hibernate.SQL">
    <level value="warn"/>
</logger>

<logger name="org.hibernate.type">
    <level value="warn"/>
</logger>

<root>
    <priority value="info"/>
    <appender-ref ref="C1"/>
</root> 

من الواضح أنني لا أحب أن أرى السبات الرسائل ;) - تعيين مستوى "تصحيح" للحصول على الإخراج.

كانت الإجابات المفيدة.بعد التغيير ، حصلت على تكرار تسجيل البيانات SQL واحد في log4j ملف سجل واحد على التحكم القياسية.لقد غيرت persistence.xml ملف show_sql إلى false للتخلص من قطع الأشجار من التحكم القياسية.حفظ format_sql صحيح يؤثر أيضا على log4j ملف السجل ، لذلك ظللت هذا صحيح.

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
        version="2.0">
    <persistence-unit name="myUnit" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
            <property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:file:d:\temp\database\cap1000;shutdown=true"></property>
            <property name="dialect" value="org.hibernate.dialect.HSQLDialect"/>
            <property name="hibernate.show_sql" value="false"/>
            <property name="hibernate.format_sql" value="true"/>
            <property name="hibernate.connection.username" value="sa"/>
            <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
        </properties>
    </persistence-unit>
</persistence>

يمكنك تكوين log4j الملف مع فئة الوسم مثل هذا (مع وحدة appender على سبيل المثال):

<appender name="console" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{yy-MM-dd HH:mm:ss} %p %c - %m%n" />
    </layout>
</appender>
<category name="org.hibernate">
    <priority value="WARN" />
</category>
<root>
    <priority value="INFO" />
    <appender-ref ref="console" />
</root>

لذلك كل تحذير أو خطأ أو قاتلة رسالة من السبات سيتم عرض لا أكثر.أيضا رمز رمز المكتبة سوف تكون في معلومات مستوى (حتى معلومات يحذرون من خطأ فادح)

إلى تغيير سجل مستوى مكتبة, فقط إضافة فئة ، على سبيل المثال ، desactive الربيع معلومات تسجيل الدخول:

<category name="org.springframework">
    <priority value="WARN" />
</category>

أو مع آخر appender, كسر المعادلة الجمعية (المعادلة الجمعية القيمة الافتراضية هي true)

<category name="org.springframework" additivity="false">
    <priority value="WARN" />
    <appender-ref ref="anotherAppender" />
</category>

و إذا كنت لا تريد أن السبات سجل كل استعلام وضع السبات الملكية show_sql إلى false.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top