Changeset 261 for branches/stable/modules/CheckEventLog/CheckEventLog.cpp
- Timestamp:
- 03/08/10 22:02:22 (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/stable/modules/CheckEventLog/CheckEventLog.cpp
r228 r261 23 23 #include "CheckEventLog.h" 24 24 #include <filter_framework.hpp> 25 #include <boost/foreach.hpp> 25 26 26 27 #include <strEx.h> … … 446 447 timeWritten.hasFilter() || timeGenerated.hasFilter(); 447 448 } 448 std::wstring getValue() const { 449 if (eventSource.hasFilter()) 450 return _T("event-source: ") + eventSource.getValue(); 451 if (eventType.hasFilter()) 452 return _T("event-type: ") + eventType.getValue(); 453 if (eventSeverity.hasFilter()) 454 return _T("severity: ") + eventSeverity.getValue(); 455 if (eventID.hasFilter()) 456 return _T("event-id: ") + eventID.getValue(); 457 if (message.hasFilter()) 458 return _T("message: ") + message.getValue(); 459 if (timeWritten.hasFilter()) 460 return _T("time-written: ") + timeWritten.getValue(); 461 if (timeGenerated.hasFilter()) 462 return _T("time-generated: ") + timeGenerated.getValue(); 463 return _T("UNknown..."); 449 450 #define NSCP_EL_DEBUG(key) if (key.hasFilter()) strEx::append_list(str, std::wstring(_T( # key )) + _T(" ") + key.to_string(), _T(",")); 451 std::wstring to_string() const { 452 std::wstring str; 453 NSCP_EL_DEBUG(eventSource); 454 NSCP_EL_DEBUG(eventType); 455 NSCP_EL_DEBUG(eventSeverity); 456 NSCP_EL_DEBUG(eventID); 457 NSCP_EL_DEBUG(message); 458 NSCP_EL_DEBUG(timeWritten); 459 NSCP_EL_DEBUG(timeGenerated); 460 return str; 464 461 } 465 462 bool matchFilter(const EventLogRecord &value) const { 463 bool ret = false; 466 464 if ((eventSource.hasFilter())&&(eventSource.matchFilter(value.eventSource()))) 467 return true; 465 ret = true; 466 else if (eventSource.hasFilter()) 467 return false; 468 468 else if ((eventType.hasFilter())&&(eventType.matchFilter(value.eventType()))) 469 return true; 469 ret = true; 470 else if (eventType.hasFilter()) 471 return false; 470 472 else if ((eventSeverity.hasFilter())&&(eventSeverity.matchFilter(value.severity()))) 471 return true; 473 ret = true; 474 else if (eventSeverity.hasFilter()) 475 return false; 472 476 else if ((eventID.hasFilter())&&(eventID.matchFilter(value.eventID()))) 473 return true; 477 ret = true; 478 else if (eventID.hasFilter()) 479 return false; 474 480 else if ((message.hasFilter())&&(message.matchFilter(value.enumStrings()))) 475 return true; 481 ret = true; 482 else if (message.hasFilter()) 483 return false; 476 484 else if ((timeWritten.hasFilter())&&(timeWritten.matchFilter(value.timeWritten()))) 477 return true; 485 ret = true; 486 else if (timeWritten.hasFilter()) 487 return false; 478 488 else if ((timeGenerated.hasFilter())&&(timeGenerated.matchFilter(value.timeGenerated()))) 479 return true; 480 return false; 489 ret = true; 490 else if (timeGenerated.hasFilter()) 491 return false; 492 return ret; 481 493 } 482 494 }; … … 484 496 485 497 #define MAP_FILTER(value, obj, filtermode) \ 486 else if (p__.first == value) { eventlog_filter filter; filter.obj = p__.second; filter_chain.push_back(filteritem_type(filtermode, filter)); } 498 else if (p__.first == value) { filter.obj = p__.second; if (bPush) { filter_chain.push_back(filteritem_type(filtermode, filter)); filter = eventlog_filter(); } } 499 #define MAP_FILTER_LAST(value, obj) \ 500 else if (p__.first == value) { filter_chain.front().second.obj = p__.second; } 487 501 488 502 struct event_log_buffer { … … 532 546 const int filter_compat = 3; 533 547 event_log_buffer buffer(buffer_length_); 548 bool bPush = true; 549 bool bDebug = debug_; 550 eventlog_filter filter; 534 551 /* 535 552 try { … … 553 570 MAP_OPTIONS_BOOL_EX(_T("filter"), bFilterIn, _T("in"), _T("out")) 554 571 MAP_OPTIONS_BOOL_EX(_T("filter"), bFilterAll, _T("all"), _T("any")) 572 MAP_OPTIONS_BOOL_EX(_T("auto-push"), bPush, _T("true"), _T("false")) 573 MAP_OPTIONS_BOOL_EX(_T("debug"), bDebug, _T("true"), _T("false")) 555 574 MAP_OPTIONS_STR(_T("syntax"), syntax) 556 575 /* … … 587 606 MAP_FILTER(_T("filter-message"), message, filter_minus) 588 607 608 MAP_FILTER_LAST(_T("append-filter-eventType"), eventType) 609 MAP_FILTER_LAST(_T("append-filter-severity"), eventSeverity) 610 MAP_FILTER_LAST(_T("append-filter-eventID"), eventID) 611 MAP_FILTER_LAST(_T("append-filter-eventSource"), eventSource) 612 MAP_FILTER_LAST(_T("append-filter-generated"), timeGenerated) 613 MAP_FILTER_LAST(_T("append-filter-written"), timeWritten) 614 MAP_FILTER_LAST(_T("append-filter-message"), message) 615 616 589 617 MAP_OPTIONS_MISSING(message, _T("Unknown argument: ")) 590 618 MAP_OPTIONS_END() … … 609 637 } 610 638 bool buffer_error_reported = false; 611 639 if (bDebug) { 640 std::wstring str; 641 BOOST_FOREACH(filteritem_type item, filter_chain) { 642 if (item.first == filter_normal) 643 str += _T(". {"); 644 else if (item.first == filter_plus) 645 str += _T("+ {"); 646 else if (item.first == filter_minus) 647 str += _T("- {"); 648 else 649 str += _T("? {"); 650 651 str += item.second.to_string() + _T(" }"); 652 } 653 NSC_DEBUG_MSG_STD(_T("Filter: ") + str); 654 } 655 656 bDebug = false; 612 657 for (std::list<std::wstring>::const_iterator cit2 = files.begin(); cit2 != files.end(); ++cit2) { 613 658 std::wstring name = *cit2; … … 684 729 if ((mode == filter_minus)&&(bTmpMatched)) { 685 730 // a -<filter> hit so thrash item and bail out! 686 if ( debug_)687 NSC_DEBUG_MSG_STD(_T("Matched: - ") + (*cit3).second. getValue() + _T(" for: ") + record.render(bShowDescriptions, syntax));731 if (bDebug) 732 NSC_DEBUG_MSG_STD(_T("Matched: - ") + (*cit3).second.to_string() + _T(" for: ") + record.render(bShowDescriptions, syntax)); 688 733 bMatch = false; 689 734 break; 690 735 } else if ((mode == filter_plus)&&(!bTmpMatched)) { 691 736 // a +<filter> missed hit so thrash item and bail out! 692 if ( debug_)693 NSC_DEBUG_MSG_STD(_T("Matched: + ") + (*cit3).second. getValue() + _T(" for: ") + record.render(bShowDescriptions, syntax));737 if (bDebug) 738 NSC_DEBUG_MSG_STD(_T("Matched: + ") + (*cit3).second.to_string() + _T(" for: ") + record.render(bShowDescriptions, syntax)); 694 739 bMatch = false; 695 740 break; 696 741 } else if (bTmpMatched) { 697 if ( debug_)698 NSC_DEBUG_MSG_STD(_T("Matched: . (contiunue): ") + (*cit3).second. getValue() + _T(" for: ") + record.render(bShowDescriptions, syntax));742 if (bDebug) 743 NSC_DEBUG_MSG_STD(_T("Matched: . (contiunue): ") + (*cit3).second.to_string() + _T(" for: ") + record.render(bShowDescriptions, syntax)); 699 744 bMatch = true; 700 745 }
Note: See TracChangeset
for help on using the changeset viewer.







