couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Scott Weber <scotty2...@sbcglobal.net>
Subject Re: Cannot get os_daemon api to function
Date Mon, 03 Feb 2014 13:52:38 GMT
Yes, it was buffering. That got me closer.  Thanks.  

Now I get an 'Invalid Log Message' when I try to log.  My log message is exactly:
["log",{"log" : "The process started"}]

    ( which I coded as strcpy(buffer,"[\"log\",{\"log\" : \"The process started\"}]\n"); 
)

Because the doc says the message must be a JSON.  As shown below:
----------------------------------------------------------------

7.3.2. Logging API
There’s also an API for adding messages to CouchDB’s logs. Its simply:
["log", $MESG]\n
Where $MESG is any arbitrary JSON. There is no response from this command. As
with the config API, the trailing \n represents a newline byte.-----------------------------------------------------------------
The error that is reported is:

-------------------------------------------------------------
[info] [<0.36.0>] Apache CouchDB has started on http://0.0.0.0:5984/
[error] [<0.139.0>] Invalid log message from daemon "my_test": {[{<<"log">>,
                                                                 
<<"The process started">>}]}
-------------------------------------------------------------


Any idea what it is really expecting?

-Scott



________________________________
 From: Paul Davis <paul.joseph.davis@gmail.com>
To: "user@couchdb.apache.org" <user@couchdb.apache.org>; Scott Weber <scotty2541@sbcglobal.net>

Sent: Monday, February 3, 2014 12:21 AM
Subject: Re: Cannot get os_daemon api to function
 

I reckon your stdout is buffered. Try adding an fflush call after the
second fputs.

On Sat, Feb 1, 2014 at 11:40 PM, Scott Weber <scotty2541@sbcglobal.net> wrote:
> I am using version 1.5.  I can get the daemon to start, but there does not appear to
be any communication on stdin/stdout.
>
> Below are my settings, and a simple C example. I would expect this simple code to log
a message, then give me a reply of the config settings. However nothing happens.
>
> Couch does restart the daemon if I change a config setting under [os_daemons].  And
the settings do appear in the config page of Futon.
>
> The example program does also exit when Couch closes the stdin connection, as expected.
>
>
> Any advice is appreciated.
>
> -Scott
>
>
> CONFIG SETTINGS:
> [log]
> level = info
>
> [os_daemons]
>
> my_test = c:/path/nativeDaemon/debug/NativeDaemon.exe
>
> [my_test]
> Value = 10,002
> OtherValue = The other value
>
>
>
> Actual C code  (uses Windows Sleep, otherwise is agnostic) :
>
>
> int main() {
>     char buffer[257];
>
>     LogMessage("\nSTART:", "Daemon Startup");  //  My own log file to disk
>     Sleep(3000);
>
>     fputs("[\"log\",{\"log\" : \"The process started\"}]\n",stdout);
>     fputs("[\"get\", \"os_daemons\"]\n",stdout);
>
>     do {
>         fgets(buffer,256,stdin);
>         if (feof(stdin)) {
>             LogMessage("\nCLOSE:","Closed STDIN"); //  This does exit when expected
>             break;
>         }
>
>
> // etc... into loop.
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message