2017-05-26 11:17:32 -07:00
import { Meteor } from 'meteor/meteor' ;
import { Mongo } from 'meteor/mongo' ;
2017-10-08 08:56:15 -07:00
import { Logger } from 'meteor/ostrio:logger' ;
import { LoggerMongo } from 'meteor/ostrio:loggermongo' ;
2017-05-26 11:17:32 -07:00
// The logging tool is primarily for managing administrative functions such that administrators can view the app logs and issue commands that might generate administrative logging.
Meteor . log = new Logger ( ) ;
2025-07-02 11:18:09 -07:00
let Logs = new Mongo . Collection ( 'Logs' ) ;
2017-05-26 11:17:32 -07:00
let logMongo = new LoggerMongo ( Meteor . log , {
collection : Logs
} ) ;
logMongo . enable ( {
enable : true ,
client : false , /* Client calls are not executed on the client. */
server : true /* Calls from the client will be executed on the server. */
} ) ;
if ( Meteor . isServer ) {
Logs . _ensureIndex ( { 'date' : 1 } , { expireAfterSeconds : 86400 } ) ;
Meteor . publish ( 'logs' , function ( ) {
return Logs . find ( { } , { limit : 10000 } ) ;
} ) ;
Meteor . methods ( {
2025-07-02 11:18:09 -07:00
clearLogs : async function ( ) {
return await Logs . removeAsync ( { } , function ( err ) {
2017-05-26 11:17:32 -07:00
if ( err ) Meteor . log . error ( err ) ;
} ) ;
}
} ) ;
}
Logs . allow ( {
insert : ( ) => false ,
update : ( ) => false ,
remove : ( ) => false
} ) ;
Logs . deny ( {
insert : ( ) => true ,
update : ( ) => true ,
remove : ( ) => true
} ) ;
export default Logs ;