问题列表 - 第4777页

如何旋转和压缩Log4perl日志文件?

据我所知,CP4中的Log4Perl或其任何相关模块都不支持日志文件的旋转和压缩.

旋转可以通过使用:

  1. 登录:: Log4perl :: Appender的::文件
  2. Log :: Dispatch :: FileRotate.

但这两个模块都不支持旋转压缩.(Log :: Dispatch :: FileRotate在它的待办事项列表中有它,但它目前没有实现).

可以使用Linux中的标准Logrotate工具,使用Log :: Log4perl :: Appender :: File的recreate_check_interval或recreate_check_signal来完成此操作.

从最初的测试中,它看起来像使用日志轮播与delaycompress选项就可以了-即使在高负荷的机器上,因为一旦文件被移动,log4perl将继续记录到同一个文件句柄,直到该信号毫无遗漏.

但是,如果未使用delaycompress,并且压缩日志文件与通过Perl程序捕获信号之间存在(甚至稍有延迟),则某些日志记录数据可能会丢失.

你怎么看?还有其他我们没有想到的选择吗?

perl rotation log4perl

10
推荐指数
2
解决办法
4220
查看次数

Django表单在唯一字段上验证失败

我有一个简单的模型定义为:

class Article(models.Model):
    slug  = models.SlugField(max_length=50,  unique=True)
    title = models.CharField(max_length=100, unique=False)
Run Code Online (Sandbox Code Playgroud)

和形式:

class ArticleForm(ModelForm):
    class Meta:
       model = Article
Run Code Online (Sandbox Code Playgroud)

当我尝试更新现有行时,验证失败:

 if request.method == 'POST':
     form = ArticleForm(request.POST)

     if form.is_valid(): # POOF
         form.save()
Run Code Online (Sandbox Code Playgroud)

创建新条目很好,但是,当我尝试更新任何这些字段时,验证不再通过.

"错误"属性什么也没有,但我进入调试器并深入Django内部,我看到了这个:

slu ::"没有此条款的文章已经存在"

因此看起来is_valid()在唯一值检查上失败,但我想要做的就是更新行.

我不能这样做:

form.save(force_update=True)
Run Code Online (Sandbox Code Playgroud)

...因为表单在验证时会失败.

这看起来很简单,但我无法弄清楚.

我正在运行Django 1.0.2

BaseModelForm.validate_unique()在表单初始化时调用了什么.

python django

20
推荐指数
2
解决办法
1万
查看次数

不在焦点时响应键盘?(C#,Vista)

我正在尝试编写一个应用程序,只要按下Shift键就会响应,无论当前哪个应用程序都有焦点.

我尝试使用SetWindowsHookEx()和使用GetKeyboardState(),但这两个只在应用程序的窗口具有焦点时才起作用.我需要它在全球范围内工作.

我该怎么做呢?

c# windows windows-vista

5
推荐指数
2
解决办法
1094
查看次数

没有自动增量字段的数据库上的AutoIncrement字段

在MS Sql Server中很容易创建自动增量字段.在我的系统中,我停止使用自动增量字段作为主键,现在我使用Guid了.太棒了,这个改变我有很多好处.但在另一个非主要关键领域,我真的需要实现"软自动增量".这是因为我的系统与数据库无关,所以我在c#中以编程方式创建了autoinc值.

我想在没有自动增量的数据库上自动增量字段的解决方案,您使用的解决方案是什么?为什么?关于这个有一些Sql Ansi声明吗?并直接从我的c#生成,是一个更好的解决方案?

PS:我知道从表选择max(id)+1并不是真正的并发友好...

sql sql-server auto-increment ansi-sql

9
推荐指数
1
解决办法
9862
查看次数

NLTK使用的实际例子

我正在玩自然语言工具包(NLTK).

它的文档(BookHOWTO)非常笨重,示例有时略有提升.

NLTK的使用/应用是否有任何好的但基本的例子?我正在考虑像Stream Hacker博客上的NTLK文章.

python nlp nltk

76
推荐指数
3
解决办法
5万
查看次数

使用autotools从C++使用C代码

我正在用C编写的一些代码编写一个(我的第一个)C++类,但是我只能通过在extern块中声明C函数来编译C++.我的项目使用autotools; 有没有办法自动化这个过程,所以我不必维护两个头文件?

c c++ linker

5
推荐指数
2
解决办法
317
查看次数

排队系统 - 启动多个员工的好方法是什么?

  • 如何为面向队列的系统设置一个或多个工作脚本?
  • 你如何安排启动 - 并在必要时重新启动 - 工作脚本根据需要?(我正在考虑像init.d /,基于Ruby的'上帝',DJB的Daemontools等等工具)

我正在开发一个异步队列/工作系统,在这种情况下使用PHP和BeanstalkdD(虽然实际的语言和守护进程并不重要).任务本身并不太难 - 将带有命令和参数的数组编码到JSON中,以便通过Beanstalkd守护程序进行传输,在工作脚本中将它们拾取以根据需要对其进行操作.

还有许多其他类似的队列/工作人员设置,例如Starling,Gearman,亚马逊的SQS以及其他更像"企业"的系统,如IBM的MQ和RabbitMQ.如果你运行像Gearman或SQS这样的东西 - 如何启动和控制工作池?问题出在最初的工人启动上,然后能够添加额外的额外工作人员,随意关闭它们(虽然我可以通过队列发送消息来关闭它们 - 只要一些'观察者'不会自动关闭它们重启它们).这不是一个PHP问题,它是关于设置一个或多个进程在启动时运行的直接Unix进程,或者向池中添加更多工作程序.

一个bash脚本循环的脚本已经到位-这将调用PHP脚本,然后收集并从队列中运行的任务,偶尔出来才能够清理自己(也可以暂停失败了几秒钟,或通过计划的事件).这样可以正常工作,并且在此基础上构建工作进程根本不会非常困难.

获得一个好的工作者控制器系统是关于灵活性,在机器启动时自动启动一个或两个,并且能够在队列繁忙时从命令行添加更多,在不再需要时关闭额外的东西.

queue worker-process message-queue gearman amazon-sqs

9
推荐指数
1
解决办法
3177
查看次数

什么是CSS和滚动条的处理?

我有一个带有HTML页面的客户端,其中包含几个带文本内容的滚动div.她正在使用基于图像的大量设计,因此默认滚动条根本不适合它.她想使用不同的风格,但据我所知,这是不可能的.

你怎么看?

html css

6
推荐指数
2
解决办法
1334
查看次数

如何使用UINavigationController的自定义视图创建backBarButtomItem

我有一个UINavigationController我推几个视图.在viewDidLoad其中一个视图中,我想将其设置self.navigationItem.backBarButtonItem为自定义视图(基于自定义图像).我不知道为什么,但似乎没有用.相反,我得到了标准的"后退"按钮.

UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 63, 30)];
[backButton setImage:[UIImage imageNamed:@"back_OFF.png"] forState:UIControlStateNormal];
[backButton setImage:[UIImage imageNamed:@"back_ON.png"] forState:UIControlStateSelected];
UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
self.navigationItem.backBarButtonItem = backButtonItem;
[backButtonItem release];
[backButton release];
Run Code Online (Sandbox Code Playgroud)

我测试了一个标准的标题,它的工作原理.上面的代码有什么问题?

self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Prout" style:UIBarButtonItemStyleDone target:nil action:nil] autorelease];
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助.

cocoa-touch

35
推荐指数
6
解决办法
5万
查看次数

Android - 获取计时器小部件的时间

如何从计时器中获取时间?我试过getText,getFormat,getBase等,但没有一个可以工作.

示例代码段:

Chronometer t = (Chronometer)findViewById(R.id.toptime);
long time = SystemClock.elapsedRealtime()-t.getBase();
Log.d(null,"Was: "+time); //time is not the proper time for some reason - it is a random number between 0 and 50
t.setBase(SystemClock.elapsedRealtime());
t.start();
Run Code Online (Sandbox Code Playgroud)

time android view widget chronometer

45
推荐指数
2
解决办法
8万
查看次数