Files
PetitTetonMeteor/imports/api/Logs.js

46 lines
1.2 KiB
JavaScript

import { Meteor } from 'meteor/meteor';
import { Mongo } from 'meteor/mongo';
import { Logger } from 'meteor/ostrio:logger';
import { LoggerMongo } from 'meteor/ostrio:loggermongo';
// 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();
let Logs = new Mongo.Collection('Logs');
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({
clearLogs: async function() {
return await Logs.removeAsync({}, function(err) {
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;