kiwi syslog设置问题求高手
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kiwi syslog设置问题求高手相关的知识,希望对你有一定的参考价值。
在kiwi syslog服务器里如何设置日志文件大小,又如何设置日志文件的存放,
第一步:新建规则CiscoRouter
1.新建Filters IP:收集来自192.168.0.1的日志
2.新建Action Display01:收集的数据显示在软件的第一个屏幕(00-09)
3.新建Action Log to file:设置日志保存路径G:\\event
如果启用Enable Log File Rotaion,设置Maximum log file 1 Day(s)则每天保存一个当天的日志,并且命名格式为Cisco.txt.001,Cisco.txt.002,如此类推保存每天的日志
这里我们不进行设置
第二步:设置保存每天日志、删除1个月前旧日志的计划安排
1.新建计划Save File,频率设置为每天一次,其他默认
设置备份日志的源路径G:\\event
Destination
每天将源路径文件移动到目标文件夹G:\\eventold,并且新建以当天日期命名的文件夹,这样源路径就只保存有当天的日志
Archive Options
可以把移动的文件进行压缩设置,或者触发一个程序的运行,这里我们不设置
Archive Notifications
如果软件email选项设置了邮件帐号,还可以通过该设置,把每天的报告发给指定的邮箱
2.新建计划Clean Up
Source需要删除一个月前的日志文件G:\\eventold
Cisco Logging配置
logging on
logging host 192.168.0.x
logging facility local7 将记录事件类型定义为local7
logging trap warning 将记录事件严重级别定义为从warningl开始,一直到最紧急级别的事件全部记录到前边指定的syslog server.
logging source-interface loopback0 指定记录事件的发送源地址为loopback0的IP地址
service timestamps log datetime 发送记录事件的时候包含时间标记
到此配置完毕
Window Logging 配置
解压后是两个文件evtsys.dll和evtsys.exe ,把这两个文件拷贝到 c:\\windows\\system32目录下。(64位系统(c:\\windows\\SysWOW64\\)
打开Windows命令提示符(开始->运行 输入CMD)
C:\\>evtsys –i –h 192.168.0.2
-i 表示安装成系统服务 -h 指定log服务器的IP地址
打开windows组策略编辑器 (开始->运行 输入 gpedit.msc),在windows设置-> 安全设置 -> 本地策略->审核策略中,打开你需要记录的windows日志。evtsys会实时的判断是否有新的windows日志产生,然后把新产生的日志转换成syslogd可识别的格式,通过UDP 3072端口发送给syslogd服务器。
卸载:1. net stop evtsys 2. evtsys –u
参考技术A 日志文件大小,路径的设置在 菜单----File---Setup----Rules---Defult----Action----Log to file里面日志存放的格式在软件 菜单-----Help----Context based Help----索引----输入log----回车看看本回答被提问者采纳
如何在 Kiwi 中为模拟方法设置参数期望
【中文标题】如何在 Kiwi 中为模拟方法设置参数期望【英文标题】:How to set expectations on parameters to mocked methods in Kiwi 【发布时间】:2013-03-07 02:59:22 【问题描述】:使用 OCMockito 和 OCHamcrest,我可以对模拟方法的参数设置期望,因此:
[verify(aMockObject) doSomething:allOf(is(instanceOf([NSArray class])), hasCountOf(3U), nil)];
似乎没有一种同样简单的方法可以使用 Kiwi 做到这一点。可以使用间谍来捕获参数,例如:
KWCaptureSpy *spy = [aMockObject captureArgument:@selector(doSomething:) atIndex:0];
NSArray *capturedArray = spy.argument;
然后检查捕获对象的期望:
[[capturedArray should] haveCountOf:3U];
在 Kiwi 中有没有更简单的方法来做到这一点?
(我知道我可以在这里使用 hamcrest 匹配器,但目前我正在探索 Kiwi 的能力)。
【问题讨论】:
【参考方案1】:我使用的一个选项是stub:withBlock:
NSArray* capturedArray; // declare this as __block if needed
[aMockObject stub:@selector(doSomething:)
withBlock:^id(NSArray *params)
capturedArray = params[0];
// this is necessary even if the doSomething method returns void
return nil;
];
// exercise your object under test, then:
[[capturedArray should] haveCountOf:3U];
这很好用,而且我发现它比间谍模式更容易实现。但你的问题让我想知道expectations using message patterns。例如:
[[[aMockObject should] receive] doSomething:myArray];
[[[aMockObject should] receive] doSomething:any()];
第一个示例将验证 aMockObject
收到带有 isEqual:myArray
参数的 doSomething:
消息。第二个示例将简单地验证 doSomething:
是否已发送,而不需要数组参数。如果我们可以在消息模式中指定某种类型的 Matcher 那就太好了,以表示我们不关心消息中发送的是什么特定的数组实例,只关心它的 count
为 3。
我还没有找到任何能够做到这一点的例子,但看起来有一些可能性。为了验证消息发送期望,Kiwi 使用KWMessagePattern
类,特别是matchesInvocation:
和argumentFiltersMatchInvocationArguments:
方法。这会检查三种类型的“参数过滤器”:
-
文字对象值(如上例中的
myArray
),与使用isEqual:
在消息中发送的实际值进行比较
KWAny
类型的对象(如上例中的 any()
宏),它将匹配任何参数值
满足[KWGenericMatchEvaluator isGenericMatcher:argumentFilter]
的对象,基本表示对象响应matches:(id)obj
因此,您应该能够使用在消息模式期望中实现matches:
的对象来执行诸如验证发送到存根方法的数组长度之类的事情,而无需求助于间谍或块。这是一个非常简单的实现:(available as a Gist)
// A reusable class that satisfies isGenericMatcher:
@interface SOHaveCountOfGenericMatcher : NSObject
- (id)initWithCount:(NSUInteger)count;
- (BOOL)matches:(id)item; // this is what KWMessagePattern looks for
@property (readonly, nonatomic) NSUInteger count;
@end
@implementation SOHaveCountOfGenericMatcher
- (id)initWithCount:(NSUInteger)count
if (self = [super init])
_count = count;
return self;
- (BOOL)matches:(id)item
if (![item respondsToSelector:@selector(count)])
return NO;
return [item count] == self.count;
@end
// Your spec:
it(@"should receive an array with count 3", ^
NSArray* testArray = @[@"a", @"b", @"c"];
id argWithCount3 = [[SOHaveCountOfGenericMatcher alloc] initWithCount:3];
id aMockObject = [SomeObj nullMock];
[[[aMockObject should] receive] doSomething:argWithCount3];
[aMockObject doSomething:testArray];
);
如果能够在这里重用 Kiwi 的内置匹配器类会很好,但我还没有确切地知道如何做到这一点。
【讨论】:
谢谢,这很有趣且内容丰富。stub:withBlock
似乎没有记录。有点遗憾,与其他存根方法不同,它仅适用于模拟(在我的测试中),但它仍然很有用。还要感谢您非常有用的概述如何为消息发送期望中的参数创建匹配器。 OCMock/OCHamcrest 组合开箱即用,这可能是 Kiwi 进入的有用方向。
谢谢,很好的回答。顺便说一句,在您的 stub:withBlock:
示例中,您应该能够只在块本身内设置对数组的期望,并且根本不需要使用 capturedArray
。
关于在块内设置期望的好观察。我试过了,效果很好。它也适用于异步测试(示例中的[[aMockObject shouldEventually] receive:]
与块内的普通params[0] should
结合使用)。
@esker“比间谍模式更容易实现”?什么是 stub:withBlock 比 Spy capture 参数更好?以上是关于kiwi syslog设置问题求高手的主要内容,如果未能解决你的问题,请参考以下文章
将防火墙日志从 kiwi syslog 服务器转发到 elasticsearch?