我配置我的log4net来监视对app.config文件所做的更改.
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
Run Code Online (Sandbox Code Playgroud)
当我运行我的应用程序并更改配置文件中的内容时,这些更改仅在我重新启动应用程序时生效.为什么会这样?
还有办法告诉log4net监视app.config中的更改吗?喜欢:
<appender name="FileAppender" type="log4net.Appender.FileAppender" >
<watch value="true" />
</appender>
Run Code Online (Sandbox Code Playgroud)
-------------编辑-------------
我现在尝试使用单独的配置文件:log4net.config.
它看起来像这样:
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="c:\log.txt" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p %c (line %L) -- %m%n" />
</layout>
</appender>
<root>
<appender-ref ref="FileAppender" />
</root>
</log4net>
Run Code Online (Sandbox Code Playgroud)
在我的assemblyInfo.cs中,我写了以下内容:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
Run Code Online (Sandbox Code Playgroud)
记录到该文件的类如下所示:
ILog myLogger = LogManager.GetLogger(typeof(Form1));
myLogger.Debug("test");
Run Code Online (Sandbox Code Playgroud)
这就像旧版本一样.日志文件条目已经生成,但是当我在运行时更改我的log4net.config时,这些更改不会应用...."Watch = true"应该启用该功能,对吧?
我是新来的咕噜咕噜,还在学习,所以我遇到了一个非常奇怪的问题.当我运行"watch"任务时,我的命令行被阻止,所以基本上我不能做任何事情.请记住,任务已成功完成.这是我的命令行输出:
C:\server\css-test>grunt w
Running "watch" task
Waiting...OK
>> File "compass-examples-master\02\sass\screen.scss" changed.
Running "compass" (compass) task
unchanged compass-examples-master/02/sass/ie.scss
unchanged compass-examples-master/02/sass/print.scss
overwrite compass-examples-master/02/stylesheets/new/sass/screen.css
Running "watch" task
Completed in 1.496s at Fri Mar 22 2013 19:31:37 GMT+0100 (Central Europe Standard Time) - Waiting...
Run Code Online (Sandbox Code Playgroud)
如您所见,我所做的只是运行"compass"任务,它成功完成.
插入点在Waiting...文本部分后保持闪烁,但键盘输入不起作用.
我的咕噜声配置
module.exports = function (grunt)
{
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
compass: {
dist: {
options: {
sassDir: 'compass-examples-master/02',
cssDir: 'compass-examples-master/02/stylesheets/new',
imagesDir: 'compas-examples-master/02/images',
boring: false,
outputStyle: 'nested',
require: 'sass-media_query_combiner'
}
}
},
watch: { …Run Code Online (Sandbox Code Playgroud) 所以我一直在学习 Vue Composition API 并且想知道“watchEffect”和“watch”之间的区别是什么。Watch 说它和 Vue 2 watch 一样,所以我猜 watchEffect 就像 2.0 一样?我想知道是否有任何特定情况下一个比另一个有很大的优势,比如在停止 watchEffect 然后重新激活它而不是在常规手表中使用布尔值的情况下......或者它们只是基本上不同的方式写同样的东西。
谢谢!
参考:
观察效果:https ://vue-composition-api-rfc.netlify.com/api.html#watcheffect
观看:https : //vue-composition-api-rfc.netlify.com/api.html#watch
我有一个方法,它返回一个IEnumerable<>使用yield return语法构建的方法:
namespace Validation
{
public class UserValidator
{
public IEnumerable<ValidationError> Validate(User user)
{
if (String.IsNullOrEmpty(user.Name))
{
yield return new ValidationError("Name", ValidationErrorType.Required);
}
[...]
yield break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我在方法中放置断点,我可以跨越每一行,但如果我尝试使用Watch或Immediate窗口来查看变量的值,我会收到此错误:
无法通过嵌套类型"Validation.UserValidator"访问外部类型"Validation.UserValidator.Validate"的非静态成员
有谁知道为什么会这样,我怎么能绕过它?
我需要在每次更新/更改属性时触发事件,以使dom元素与模型上的属性值保持同步(我使用john resig的简单继承http://ejohn.org/blog/simple-javascript-继承/).这可以通过跨浏览器方式进行吗?在我看来,如果我可以包装任何函数js用于设置属性并使其触发事件,它可以工作,我只是不知道如何做到这一点.
我今天才开始玩compass和haml.虽然我很熟悉的方式sass工作,我得到一个什么样的想法compass是为sass以及如何使用它,我已经当涉及到使用打了道路块一点点haml有效.
当然我希望这里的某个人已经知道我的问题的答案,并且可以给我一点启动haml.
这是我想要完成的事情:保存时自动编译我的HAML文件.
然而,该项目只是一个非常小的静态站点(几页),用于构建模板集,以便以后集成到ExpressionEngine CMS(php基于解决方案)中.
所以请记住,我自己使用HAML来简化最初的"设计到HTML/CSS"过程,这是一个自动编译我的HAML文件到HTML的好方法,基本上是一个给我一个haml watch命令,我可以在我的运行项目?
那里有甚至这样的东西吗?
至于我正在运行的平台,我有一台运行OS X 10.6.6的Mac.
感谢阅读,任何想法,建议,帮助将非常感谢.
为什么我不能在服务中观看对象.我有一个简单的变量工作,但一个对象不起作用. http://plnkr.co/edit/S4b2g3baS7dwQt3t8XEK?p=preview
var app = angular.module('plunker', []);
app.service('test', ['$http', '$rootScope',
function ($http, $rootScope) {
var data = 0;
var obj = {
"data": 0
};
this.add = function(){
obj.data += 1;
console.log('data:', obj);
};
this.getData = function() { return obj; };
}]);
app.controller('TestController', ['$scope', '$rootScope', '$filter', 'test',
function($scope, $rootScope, $filter, test) {
//test controller
$scope.add = function(){
test.add();
};
$scope.test = test;
$scope.$watch('test.getData()', function(newVal){
console.log('data changes into: ', newVal)
});
}]);
Run Code Online (Sandbox Code Playgroud) 我正在本地firebase服务器上运行一个webapp (以"firebase serve"开头).
我想要的是找到一种方法告诉我的客户端(浏览器脚本)我的项目文件已经改变,以启动浏览器刷新.
在以前的项目(运行nodejs服务器)中,我的解决方案是在后端和前端之间建立websocket连接.所以每次服务器重新启动时(...由于文件更改,我正在观察使用像nodemon这样的观察者...),我的服务器端代码建立了一个新的连接到客户端,该客户端听取了该事件并刷新了浏览器就可以了.
我的firebase服务器的问题是,我没有运行自己的后端代码,而且我没有找到有关如何告诉我的客户端的任何信息,我的项目文件已经更改.事实上,我的firebase服务器根本没有重启,因为在这个没有后端的环境中还没有必要.但我想至少可以通过nodemon或其他东西运行我的firebase服务器来完成.
附加信息:我试图找到一种方法,使用webpack-dev-server,它集成了自动刷新功能,但无法在两台服务器之间找到链接,也无法在不同端口上集成它们并解决不同的任务.
我的问题可能是:firebase服务器中是否有任何解决方案?有没有办法在文件发生变化时触发客户端事件?或者最终运行我自己的firebase后端中间件来创建与客户端的websocket连接?
欢迎任何建议.
编辑:
我找到了一种使用browsersync的方法.由于browsersync可以充当其他服务器的代理(在我的例子中:firebase服务器),因此设置非常简单.
安装完成后,只需转到项目目录并输入例如:
browser-sync start --proxy"localhost:5000"--files"dist/*"
其中"localhost:5000"是当前服务器所处理的主机和端口,"dist"是应该监视更改的目录.
默认情况下,browsersync将在"localhost:3000"为您的应用提供服务.
有关browsersync主页的更多信息
这是我的代码,它是一个简单的排列代码块:
void arrange(char c[], int N, int start)
{
if (start == N)
{
print(c, N);
return;
}
for (int i = start; i < N; i++)
{
swap(c[start], c[i]);
arrange(c, N, i + 1);
swap(c[start], c[i]);
}
}
int main(int argc, char const *argv[])
{
char c[] = { 'A','B','C' };
int N = (sizeof(c) / sizeof(char));
arrange(c, N, 0);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它没有给出我期望的输出,我想调试这段代码。我想观察输入数组中的字符交换。但是当我调试时,输入数组无法扩展。
我一直在尝试使用 --watch 标志将 Mocha 设置为自动监视文件中的更改。我在 package.json 中设置了两个脚本,如下所示:
"test": "mocha",
"test:watch": "mocha --watch ./test ./game_logic"
Run Code Online (Sandbox Code Playgroud)
当调用第一个脚本时,npm test测试执行时没有错误,但是当我调用第二个脚本时npm run test:watch,会引发以下错误:
(node:149779) UnhandledPromiseRejectionWarning: Error [ERR_REQUIRE_ESM]: Must use import to load
ES Module: <path to test file contained in /test>
Run Code Online (Sandbox Code Playgroud)
我不太明白错误消息,因为我已经在使用import每当我将整个文件或单独的功能从一个文件导入另一个文件时,我就已经在使用了。
Mocha 的文档指出支持将测试编写为 ES 模块,因此我真的不知道为什么会发生所描述的错误。
watch ×10
debugging ×2
javascript ×2
node.js ×2
angularjs ×1
app-config ×1
appender ×1
browser ×1
c++ ×1
cmd ×1
command-line ×1
compass-sass ×1
compilation ×1
firebase ×1
gruntjs ×1
haml ×1
ienumerable ×1
jquery ×1
log4net ×1
mocha.js ×1
project ×1
refresh ×1
service ×1
unit-testing ×1
vue.js ×1
yield-return ×1