summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Smith (work) <jhs@iriscouch.com>2013-02-11 05:26:23 +0000
committerJason Smith (work) <jhs@iriscouch.com>2013-02-11 05:29:25 +0000
commitf012f23fe456f8b3ecc7f4746da2d7bc230125d4 (patch)
tree82747af74b9219a31be00ded1d366e0ed2a5a33d
parenta5bc55784ca58fef31f7e5e3fccbd28bf5b89659 (diff)
downloadcouchdb-f012f23fe456f8b3ecc7f4746da2d7bc230125d4.tar.gz
Support for reading the query server log file
-rw-r--r--src/couchdb/couch_httpd_misc_handlers.erl9
-rw-r--r--src/couchdb/couch_log.erl15
2 files changed, 21 insertions, 3 deletions
diff --git a/src/couchdb/couch_httpd_misc_handlers.erl b/src/couchdb/couch_httpd_misc_handlers.erl
index d1f947d18..d242cee03 100644
--- a/src/couchdb/couch_httpd_misc_handlers.erl
+++ b/src/couchdb/couch_httpd_misc_handlers.erl
@@ -257,11 +257,16 @@ increment_update_seq_req(Req, _Db) ->
% httpd log handlers
-handle_log_req(#httpd{method='GET'}=Req) ->
+handle_log_req(#httpd{method='GET', path_parts=Path}=Req) ->
ok = couch_httpd:verify_is_server_admin(Req),
Bytes = list_to_integer(couch_httpd:qs_value(Req, "bytes", "1000")),
Offset = list_to_integer(couch_httpd:qs_value(Req, "offset", "0")),
- Chunk = couch_log:read(Bytes, Offset),
+ Chunk = case Path of
+ [_Log, <<"query_server">>] ->
+ couch_log:read_query_server(Bytes, Offset);
+ _ ->
+ couch_log:read(Bytes, Offset)
+ end,
{ok, Resp} = start_chunked_response(Req, 200, [
% send a plaintext response
{"Content-Type", "text/plain; charset=utf-8"},
diff --git a/src/couchdb/couch_log.erl b/src/couchdb/couch_log.erl
index c30b67a9e..0dd1dfc4c 100644
--- a/src/couchdb/couch_log.erl
+++ b/src/couchdb/couch_log.erl
@@ -18,7 +18,7 @@
-export([debug/2, info/2, warn/2, error/2, query_server/2]).
-export([debug_on/0, info_on/0, warn_on/0, get_level/0, get_level_integer/0, set_level/1]).
-export([debug_on/1, info_on/1, warn_on/1, get_level/1, get_level_integer/1, set_level/2]).
--export([read/2]).
+-export([read/2, read_query_server/2]).
% gen_event callbacks
-export([init/1, handle_event/2, terminate/2, code_change/3]).
@@ -289,6 +289,19 @@ get_abs_query_server_file() ->
read(Bytes, Offset) ->
LogFileName = couch_config:get("log", "file"),
+ read(LogFileName, Bytes, Offset).
+
+read_query_server(Bytes, Offset) ->
+ LogFileName = couch_config:get("log", "file"),
+ QuerySrvFile = get_abs_query_server_file(),
+ case QuerySrvFile of
+ LogFileName ->
+ ""; % No special query server file.
+ _ ->
+ read(QuerySrvFile, Bytes, Offset)
+ end.
+
+read(LogFileName, Bytes, Offset) ->
case filelib:file_size(LogFileName)
of 0 ->
"";