Serilog是一个日志库,具有许多日志查看/分析服务(如Glimpse或Loggly)的Sinks(适配器).这很酷但是所有这些都需要浏览器才能看到日志.
难道你不知道,桌面应用程序(使用winforms,WPF等)是否有适用于serilog的日志条目的现成GUI控件?
PS我们可以采用IObservable serilog Sink并创建我们自己的"LogGrid"但我们宁愿不重新发明自行车.
我有一个具有自动完成功能的完成者类.简单版本:
class Completer:
def __init__(self):
self.words = ["mkdir","mktbl", "help"]
self.prefix = None
def complete(self, prefix, index):
if prefix != self.prefix:
self.matching_words = [w for w in self.words if w.startswith(prefix)]
self.prefix = prefix
else:
pass
try:
return self.matching_words[index]
except IndexError:
return None
Run Code Online (Sandbox Code Playgroud)
并执行类似这样的操作以使用readline进行自动完成:
import readline
readline.parse_and_bind("tab: complete")
completer = Completer()
readline.set_completer(completer.complete)
user_input =raw_input("> ")
Run Code Online (Sandbox Code Playgroud)
因此,在示例中有3个单词用于自动完成[" help "," mkdir "," mktbl "].
如果用户执行:
> he<tab>
用户获取:
> help
但如果用户执行
> mk<tab>
没有任何事情发生,因为没有一个匹配(mkdir和mktbl)
如果有多个匹配项,如何显示选项?像Bash一样使用文件名自动完成?
因此,用户可以获得如下内容:
> mk<tab>
mktbl mkdir
> mk<cursor>
PS我试图把 …
当使用 MySQL C API 中的 Prepared Statements 来处理 TEXT 字段结果时,必须为 out 绑定指定字符串的长度:
MYSQL_BIND out_bind;
char str_data[STRING_SIZE];
my_bool is_null;
my_bool error;
....
/* STRING COLUMN */
out_bind.buffer_type = MYSQL_TYPE_STRING;
out_bind.buffer = str_data;
out_bind.buffer_length = STRING_SIZE;
out_bind.is_null= &is_null;
out_bind.length= &length;
out_bind.error= &error;
mysql_stmt_bind_result(statement, out_bind)
Run Code Online (Sandbox Code Playgroud)
在给定的示例中,STRING_SIZE 是已知常量,但如何处理数据长度从小到兆大小不等的 TEXT 字段?
有没有标准的方法呢?
我们有什么
我们有一些复杂的winforms控制.要存储其状态,我们使用一些自定义序列化类.让我们说我们已经将它序列化为xml.现在我们可以将这个xml保存为用户目录中的文件或将其包含在另一个文件中......
但是......
问题是,
如果用户在他的winform应用程序中创建了几个这样的控件(在设计时),最好使用哪个唯一标识符来了解哪些已保存的配置属于哪些控件?
所以这个标识符应该:
我想可以想象一下这样做的几种方法,我相信可能会有一些默认的方法.
有什么好用的?为什么?
可能重复:
IEnumerable.Cast <>
可以隐式地将int转换为double.为什么"指定演员表无效".异常在这里提出?
double[] a = Enumerable.Range(0, 7).Cast<double>().ToArray();
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几个"版本".
PS我知道可能的解决方案,如:
double[] a = Enumerable.Range(0, 7).Select(x => (double)x).ToArray();
Run Code Online (Sandbox Code Playgroud)
但我很好奇Cast如何工作=>为什么它在这个看起来如此明显的例子中不起作用.
让我们看一个网格填充的例子。
我们有Column类。它有一个委托FormatCell,它接受一些数据并将其转换为字符串。FormatCell委托在设计时未知 - 它可能由插件设置。
public class ColumnFormatter
{
public Func<Data, string> FormatCell {get; set;}
//...
}
Run Code Online (Sandbox Code Playgroud)
以下是如何使用此类列的示例。
public class Table
{
public List<Column> Columns;
public List<List<string>> BuildTable(List<Data> dataRows)
{
var table = new List<List<string>>();
foreach (var data in dataRows)
{
var line = new List<string>();
foreach (var column in Columns)
{
line.Add(column.FormatCell(data));
}
table.Add(line);
}
return table;
}
}
Run Code Online (Sandbox Code Playgroud)
现在每一列都应该保存它的状态。问题是如何序列化这个 FormatCell 委托?
PS 我知道这个问题,但我的问题更具体。也许有人有针对这种情况的特定可靠的磨合解决方案?
简明扼要:
有没有办法(使用 YouTrack-API 或其他方式)更改问题 ID。比如说从s-5到s-30?
全文:
我们创建了 YouTrack 项目来跟踪我们生产的科学设备。一台设备 - 一个问题。通过我们创建的自定义字段,这是处理“设备故事”的非常方便的方法。
我们遇到的唯一问题是设备有自己的 ID 号。如果我们可以更改问题 ID,使其与设备 ID 相对应,那将会非常有帮助。当我们从其他问题和其他项目引用设备,并与真实设备 ID 等建立链接时,特别有用。
我想让python日志输出以对应于记录树的树的形式.看看例子.
让我们说我们有一个代码:
import logging
logger_a = logging.getLogger("a")
logger_a_b = logging.getLogger("a.b")
logger_a_b_c = logging.getLogger("a.b.c")
# ...
logger_a.debug("One")
logger_a_b.warning("two")
logger_a_b.warning("three")
logger_a_b_c.critical("Four")
logger_a_b.warning("Five")
Run Code Online (Sandbox Code Playgroud)
输出应该是这样的:
<--"a"
| DEBUG: One
|
o<--"a.b"
| | WARNING: Two
| | WARNING: Three
| |
| o<--"a.b.c"
| | CRITICAL: Four
| |
| | WARNING: Five
Run Code Online (Sandbox Code Playgroud)
我可以手动为每个日志编写格式化程序,但它没有解决插入类似o < - "ab"的问题,我宁愿通过日志记录结构自动计算偏移量.
有一个名为日志记录树的模块.它打印日志记录布局.我想要的是以大致相同的方式打印日志消息.
你知道任何图书馆,方法吗?
让我们假设它是一些ARM控制器的嵌入式开发。假设我们有一些变量,它可以从中断或“mainThread”分配 - (它是“主循环”还是 RTOS 线程)。在volatile这种情况下应该使用C world关键字,代码可能如下所示:
/* Some subsystem .C file */
static volatile uint8_t state;
void on_main_thread(void) {
state = 1; /* Changing state in this context */
}
void on_interrupt(void) {
state = 0; /* Changing state from interrupt */
}
uint8_t get_state(void) {
return state; /* Getting the state in whatever context */
}
Run Code Online (Sandbox Code Playgroud)
volatile在这种情况下,关键字是必不可少的。现在我们公司把一些代码改写成C++,同样的子系统例子是这样的(我这里用enum来强调这个问题)
class SomeSubsystem
{
public:
enum class States
{
Off,
Idle,
Up,
Down,
};
States getState() const { return mState; …Run Code Online (Sandbox Code Playgroud) 为什么命名管道更适合本地Windows机器上的IPC(进程间通信)?或者UDP有时可能更好?