我想为我的应用程序提供loglevel TRACE(5),因为我认为这debug()还不够.另外log(5, msg)不是我想要的.如何将自定义日志级别添加到Python记录器?
我有mylogger.py以下内容:
import logging
@property
def log(obj):
myLogger = logging.getLogger(obj.__class__.__name__)
return myLogger
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我以下列方式使用它:
class ExampleClass(object):
from mylogger import log
def __init__(self):
'''The constructor with the logger'''
self.log.debug("Init runs")
Run Code Online (Sandbox Code Playgroud)
现在我想打个电话 self.log.trace("foo bar")
在此先感谢您的帮助.
编辑(2016年12月8日):我改变了接受pfa的答案,即恕我直言,这是一个很好的解决方案,基于Eric S.的非常好的建议.
我从中派生了一个类Exception,基本上是这样的:
class MyException extends Exception {
private $_type;
public function type() {
return $this->_type; //line 74
}
public function __toString() {
include "sometemplate.php";
return "";
}
}
Run Code Online (Sandbox Code Playgroud)
然后,我是MyException这样派生的:
class SpecialException extends MyException {
private $_type = "superspecial";
}
Run Code Online (Sandbox Code Playgroud)
如果我throw new SpecialException("bla")来自一个函数,捕获它,然后去echo $e,那么该__toString函数应该加载一个模板,显示它,然后实际上不返回任何回显.
这基本上就是模板文件中的内容
<div class="<?php echo $this->type(); ?>class">
<p> <?php echo $this->message; ?> </p>
</div>
Run Code Online (Sandbox Code Playgroud)
在我看来,这绝对有用.但是,当抛出异常并尝试显示它时,我收到以下错误:
致命错误:无法访问第74行的C:\ path\to\exceptions.php中的私有属性SpecialException :: $ _ type
任何人都可以解释为什么我违反规则吗?我用这段代码做了一些非常机智的事吗?有没有更惯用的方法来处理这种情况?$_type变量的点是(如图所示)我希望根据捕获的异常类型使用不同的div类.
如何grep以字符开头和结尾的东西
ABC-0
ABC-1
ABC-10
ABC-20
Run Code Online (Sandbox Code Playgroud)
我想要为ABC-0和ABC-1 grep -v
想象一下,您可以自由选择像GNU make这样的工具来实现新的C++项目.你会选择什么?有没有可用的替代品?
它应该/是
src/binJava的常见分离注意:
GNU make没什么问题.我只是不喜欢它的语法,这些年来增长的所有东西和愚蠢的递归都会产生问题.我现在用gmake多年了.
我需要帮助做以下事情:
预处理器宏标签(x)应输出"#x",例如,
#define label(x) ...
Run Code Online (Sandbox Code Playgroud)
如果我调用label(aname),输出应为"#aname"(不带引号)
我知道,以下尝试都是错误.
#define label(x) #x // leads to "x"
#define label(x) \#x // is \"x"
#define label(x) "#x" // is "#x" (but not the content of x") "#otto"
Run Code Online (Sandbox Code Playgroud)
它可能存在一种逃脱#(磅),但我不知道,如何逃脱......
编辑:我运行"gcc -E test -o test.html"来获取输出.重点是:如何仅使用预处理器的功能使用makro打印哈希标记(#)?
我尝试x用所有字符声明一个变量a..x.在命令行(bash)上,替换a..x没有任何刻度的作品.
$ echo {a..x}
a b c d e f g h i j k l m n o p q r s t u v w x
Run Code Online (Sandbox Code Playgroud)
但是通过x={a..x}结果以{a..x}字符串形式将其分配给变量.只有x=$(echo {a..x})作品.
问题是:这是正确的分配方式还是我必须做其他事情?
主要目的是将序列分配给数组,例如,
disks=( $(echo {a..x}) )
Run Code Online (Sandbox Code Playgroud) 如何将星期或月份作为字符串获取?无需执行以下操作:
DateTime now = DateTime.now();
String dayOfWeek = null;
switch(now.getDayOfWeek()) {
case DateTimeConstants.MONDAY:
dayOfWeek = "Monday";
break;
case DateTimeConstants.TUESDAY:
dayOfWeek = "Tuesday";
break;
case DateTimeConstants.WEDNESDAY:
dayOfWeek = "Wednesday";
break;
case DateTimeConstants.THURSDAY:
dayOfWeek = "Thursday";
break;
case DateTimeConstants.FRIDAY:
dayOfWeek = "Friday";
break;
case DateTimeConstants.SATURDAY:
dayOfWeek = "Saturday";
break;
case DateTimeConstants.SUNDAY:
dayOfWeek = "Sunday";
break;
}
Run Code Online (Sandbox Code Playgroud) 列出所有不包含2个不同字符串的文件
我有一个目录,其中有许多文件以模式命名,例如file1.txt
我可以列出所有不包含一个字符串的文件
grep -l "String" file*
Run Code Online (Sandbox Code Playgroud)
如何列出不包含我尝试过的两个字符串的文件?
grep -l "string1|string2" file*
Run Code Online (Sandbox Code Playgroud) 在C++中(在Linux上使用gcc)我想把一个byte array(vector<unsigned char>)放到a ostringstream或a中string.
我知道我可以使用,sprintf但它似乎也不是最好的使用方式char*.
顺便说一句:这个链接没有帮助
编辑:目前为止所有答案都有效.但我没有意思,我想将字节/十六进制值转换为它们的字符串表示,例如,vector<..> = {0,1,2} -> string = "000102".对不起,但重要的细节
什么是最好的方式扩展的model.save方法?
我需要添加新方法将相同的数据发布到后端.ie:played方法应该请求(通过POST)apiurl/model/:id/played
例如:
var Game = Backbone.Model.Extend({
baseUrl: '/games/',
played: function(){
this.url = this.baseUrl + this.id + '/played'
this.save();
}
});
var game = new Game({id:3234}); //is only an example, instances are created before previuosly
game.played();
Run Code Online (Sandbox Code Playgroud)
这种方式有效,但请求是GET.此外,如果这save()不会在请求中发送所有属性,那将是完美的.
添加信息: 由于我必须与跨域api进行交互,因此我扩展了同步方法以使用JSONP.此外,我添加了一些安全说明.
//backbone sync
Backbone._sync = Backbone.sync;
Backbone.sync = function(method, model, options) {
//network
options.timeout = 10000;
options.dataType = "jsonp";
//security
if(_conf.general.accessToken){
var ak = _conf.general.accessToken,
url = model.url,
linker = url.indexOf('?') === …Run Code Online (Sandbox Code Playgroud)