2009-05-18 24 views
13

Tôi đang sử dụng Quartz.NET để lên lịch cho một số tác vụ tùy chỉnh trong ứng dụng của chúng tôi. Mọi thứ hoạt động tốt ngoại trừ việc nó ghi lại khoảng 20 mục gỡ lỗi trong một giây.Tắt tính năng Ghi nhật ký gỡ lỗi bằng Quartz .Net

Tôi không biết cách tắt ghi nhật ký gỡ lỗi. Bất kỳ trợ giúp nào cũng sẽ được đánh giá cao vì tôi đã cố gắng tra cứu trên mạng mà không có may mắn.

Các mục debug trông giống như dưới đây

DEBUG 2009-05-12 03:24:14,000 8612670ms StdRowLockSemaphore ObtainLock   - Lock 'TRIGGER_ACCESS' is desired by: SchedulerFactory_QuartzSchedulerThread 
DEBUG 2009-05-12 03:24:14,029 8612699ms StdRowLockSemaphore ExecuteSQL   - Lock 'TRIGGER_ACCESS' is being obtained: SchedulerFactory_QuartzSchedulerThread 
DEBUG 2009-05-12 03:24:14,029 8612699ms StdRowLockSemaphore ObtainLock   - Lock 'TRIGGER_ACCESS' given to: SchedulerFactory_QuartzSchedulerThread 
DEBUG 2009-05-12 03:24:14,034 8612704ms StdRowLockSemaphore ReleaseLock  - Lock 'TRIGGER_ACCESS' returned by: SchedulerFactory_QuartzSchedulerThread 
DEBUG 2009-05-12 03:24:14,035 8612705ms StdRowLockSemaphore ObtainLock   - Lock 'TRIGGER_ACCESS' is desired by: SchedulerFactory_QuartzSchedulerThread 
DEBUG 2009-05-12 03:24:14,035 8612705ms JobRunShell   Run    - Calling Execute on job DEFAULT.ProcessIncomingMTRJob 

Trả lời

6

Quartz.net sử dụng Common.Logging, vì vậy một cái gì đó như thế này trong App.config của bạn/Web.config:

<configSections> 
    <sectionGroup name="common"> 
     <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" /> 
    </sectionGroup> 
</configSections> 

<common> 
    <logging> 
     <factoryAdapter type="Common.Logging.Simple.**youradapterhere**, Common.Logging"> 
      <arg key="level" value="ERROR" /> 
     </factoryAdapter> 
    </logging> 
</common> 

Hãy chắc chắn để thay đổi youradapterhere thành bộ chuyển đổi ghi nhật ký thực tế bạn đang sử dụng hoặc NoOpLoggerFactoryAdapter nếu bạn muốn tắt hoàn toàn quá trình ghi nhật ký.


** Edit: ** Dựa trên nhận xét Ganesh của:

<sectionGroup name="common"> 
    <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging"/> 
</sectionGroup> 
<common> 
    <logging> 
     <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net"> 
      <arg key="configType" value="INLINE"/> 
      <arg key="configFile" value="filename"/> 
      <arg key="level" value="ERROR" /> <!-- add this line here --> 
     </factoryAdapter> 
    </logging> 
</common> 

** Edit 2: **

Đối với những lợi ích của những người không muốn để đọc các nhận xét, mức nhật ký đã thực sự được đặt trong cấu hình gốc của log4net:

<log4net> 
    <root> 
     <level value="DEBUG" /> <!-- This is the value that needed changing --> 
     <appender-ref ref="Console" /> 
     <appender-ref ref="RollingFile" /> 
    </root> 
</log4net> 
+0

Chúng tôi đã sử dụng Common.Logging trong ứng dụng ASP .Net của chúng tôi. Mục nhập trong web.config trông như sau. Bạn có thể trợ giúp tôi về nơi tôi thêm mục nhập bạn đề xuất

\t \t \t \t \t \t \t \t \t \t \t \t Ganesh

+0

tôi sửa câu trả lời của tôi với cấu hình của bạn và thêm vào dòng tương ứng. – Rytmis

+0

Chúng tôi cũng đang đăng nhập thông tin từ thành phần mà Quartz .net gọi là một công việc theo lịch trình. Có thể chỉ định nhiều giá trị trong khóa Điều này có thể thực hiện được Cảm ơn tất cả sự giúp đỡ của bạn – Ganesh

10

Rytmis' answer là điều tuyệt vời nếu bạn muốn giảm toàn bộ quá trình ghi nhật ký thông qua Cơ sở hạ tầng đăng nhập chung.

Nhưng nếu bạn có nhiều mã đăng nhập thông qua Logging Common, và bạn chỉ muốn giảm bớt số tiền của khai thác gỗ từ thạch anh (và không phải từ phần còn lại của mã của bạn), những gì tôi khuyên bạn nên là thế này:

Trong xml log4net config (app.config thường), bạn có thể đã có một cái gì đó như thế này:

<root> 
     <level value="ALL" /> 
     <appender-ref ... /> 
     ... 
    </root> 

Rời khỏi đó vì nó là. Và sau đó (hoặc bất cứ nơi nào bên trong phần <log4net> config) chỉ cần thêm này:

<logger name="Quartz"> 
     <level value="ERROR" /> 
    </logger> 

phần <logger> này sẽ cấu hình tất cả các logger với không gian tên "thạch anh". Vì vậy, trong ví dụ này Quartz sẽ đăng nhập với cấp ERROR trong khi phần còn lại của ứng dụng của tôi sẽ đăng nhập với cấp ALL.

+1

Đẹp nhất, làm việc hoàn hảo :-) –

+1

Trên thực tế câu hỏi không phải là cách để lên cấp độ ghi nhật ký chung của bạn, do đó, điều này nên được đánh dấu là câu trả lời, vì điều này giải quyết được vấn đề. – Kjellski

2

Nếu bất kỳ một nhu cầu để làm điều này trong NLog chỉ cần thêm những điều sau đây là nguyên tắc hàng đầu KHCN & MT trong NLog.Config

<!-- Disable Quartz info logging --> 
<logger name="Quartz*" minlevel="Trace" maxlevel="Info" final="true" /> 

Lưu ý rằng điều này vẫn sẽ cho phép cảnh báo, Lỗi, Fatal đi đến logger khác nếu bạn không muốn thay đổi đó maxlevel="Info" đến maxlevel="Fatal"

+0

Hey, tôi đã cố gắng lời khuyên của bạn, nhưng nó vô hiệu hóa tất cả các quy tắc thể thao, bạn có thể giải thích gần hơn làm thế nào để sử dụng nó phải không? –

+0

Bạn nên đặt nó ở trên tất cả các trình ghi nhật ký khác, cũng đảm bảo rằng các lớp không phải của bạn nằm trong một không gian tên hoặc có một tên lớp bắt đầu bằng Quartz vì nó sẽ vô hiệu hóa chúng. Nó cho phép NLog bỏ qua tất cả các logger có tên bắt đầu bằng Quartz. – Peter

+0

có thể tôi sẽ đăng câu hỏi –

Các vấn đề liên quan