我想重定向nginx访问日志,stdout
以便能够通过journalctl
(systemd)分析它们.
批准的答案也有同样的问题.
将nginx access_log和error_log日志记录到主进程的STDOUT和STDERR
但它对我不起作用.随着/dev/stderr
我得到open() "/dev/stderr" failed (6: No such device or address)
.随着/dev/stdout
我得到没有访问日志journalctl -u nginx
.
nginx.conf
daemon off;
http {
access_log /dev/stdout;
error_log /dev/stdout;
...
}
...
Run Code Online (Sandbox Code Playgroud)
sitename.conf
server {
server_name sitename.com;
root /home/username/sitename.com;
location / {
proxy_pass http://localhost:3000/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
access_log on;
}
}
Run Code Online (Sandbox Code Playgroud)
nginx.service
[Service]
Type=forking
PIDFile=/run/nginx.pid
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nginx
ExecStartPre=/usr/sbin/nginx -t -q -g 'master_process on;'
ExecStart=/usr/sbin/nginx -g 'master_process on;'
ExecReload=/usr/sbin/nginx -g …
Run Code Online (Sandbox Code Playgroud) 我正在学习Haskell一段时间,所以我决定检查一些受欢迎的项目,以了解它在现实中的样子,并可能对该过程进行逆向工程.
我选择了哈基尔,因为它做了一些我熟悉的事情并且中等复杂.然后我立即坚持这个问题:如何回溯进口?
说,在JavaScript中,每个导入都是显式的.
let Q = require("Q") // namespace
let {foo} = require("Q/foo") // value
Run Code Online (Sandbox Code Playgroud)
Haskell默认为
import Q
Run Code Online (Sandbox Code Playgroud)
它会立刻破坏一切,人们似乎真的滥用它.
现在我看一下教程,然后在源头看到我发现我不知道一个或另一个函数的位置,也不知道除了搜索之外如何发现它.
是否有一些技巧可以发现这种信息,例如发出语法错误,这会显示源文件或其他什么?您如何在工作流程中解决此类任务?
我正在尝试这个(用于学习目的):
{-# LANGUAGE FlexibleInstances #-}
instance Monoid (a -> a) where
mempty = id
mappend f g = f . g
Run Code Online (Sandbox Code Playgroud)
期望id <> id
等于id . id
但是,(id <> id) 1
我收到此错误:
Non type-variable argument in the constraint: Monoid (a -> a)
Run Code Online (Sandbox Code Playgroud)
我应该改变什么来运行它?
这只是为了更好地理解monoids和Haskell类型类,而不是用于任何实际用途.
免责声明:以下描述了在 CentOS 7 中出于学习目的所做的事情。
我想将 crontab 作业的输出重定向到journalctl
. 当我有以下记录时,它只是向 root 用户发送邮件。
# crontab -l
* * * * * echo "Hello World"
Run Code Online (Sandbox Code Playgroud)
我读过有关systemd-cat
哪个可以执行一个进程,将其输出通过管道传输到日志。所以我做了这样的:
# crontab -l
* * * * * systemd-cat -t "cron-bot" echo "Hello World"
Run Code Online (Sandbox Code Playgroud)
但现在我每分钟收到两条日志消息:
{
"_TRANSPORT" : "syslog",
"SYSLOG_IDENTIFIER" : "CROND",
"MESSAGE" : "(root) CMD (systemd-cat -t \"cron-bot\" echo \"Hello World\")",
"_CMDLINE" : "systemd-cat -t cron-bot echo Hello World",
}
{
"_TRANSPORT" : "stdout",
"SYSLOG_IDENTIFIER" : "cron-bot",
"MESSAGE" : "Hello World",
"_COMM" : …
Run Code Online (Sandbox Code Playgroud) 所以我可以重载函数:
function myFunc(x : number) : number
function myFunc(x : string) : string
function myFunc(x : number | string) : number | string {
if (typeof x == "string") {
return x + "1"
} else {
return x + 1
}
}
Run Code Online (Sandbox Code Playgroud)
它有效:
const x = myFunc(1) // correctly inferred as number
const y = myFunc("1") // correctly inferred as string
Run Code Online (Sandbox Code Playgroud)
此语法但不保护重载实现中的混合类型:
function myFunc(x : number) : number
function myFunc(x : string) : string
function myFunc(x : number | …
Run Code Online (Sandbox Code Playgroud)